Angående posting af data uden form
Jeg ønsker at vidre sende data til en servlet, men ikke med en form man selv skal udfylde men simpelthen bare ved at klikke på forskellige links der repræsenterer forskellige værdier som servletten skal lede efter.Jeg har et eksempel hvor jeg har en masse bøger og disse bøger har en genre. Der kunne f.eks. være:
Krimi
Gyser
Disse skal fremstå som et link og når man klikker på linket vidre sendes værdien for genren til servletten. Jeg har lavet et eksempel hvor jeg selv skal indtaste genren i et felt og derefter klikke Vis Liste, men jeg ønsker istedet at man skal trykke på de genre som links istedet, da det ikke altid man ved hvilke genre der er, så er det nemre de står som en liste links.
Nedenfor er mit eksempel som Arne_V har bidraget til
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Bog Liste</title>
</head>
<body>
<strong>Bog liste</strong>
<br/>
<br/>
<form method="post" action="listeServlet">
<table cellspacing="2" cellpadding="2" border="0">
<tr>
<td>Genre:</td> ()Ønsker links istedet der sender den
/*relevante genre parameter der kan opfanges på s
*/amme måde som servletten.
<td><input type="text" name="genre" size="20"/></td>
</tr>
</table>
<br/>
<input type="submit" value="Vis Liste"/>
</form>
<br/>
<jsp:useBean id="bogListe" scope="request" class="java.util.ArrayList"/>
<jsp:useBean id="search" scope="request" class="java.lang.String"/>
<jsp:useBean id="searchnone" scope="request" class="java.lang.String"/>
<%
if(search.equals("done")) {
%>
Bogliste
<br/>
<br/>
<%
if(bogListe.size()==0) {
%>
Der er ikke nogle bøger under denne kategori
<%
}
for(int i = 0; i < bogListe.size(); i++) {
test.bog bog = (test.bog)bogListe.get(i);
%>
<table cellspacing="2" cellpadding="2" border="0">
<tr>
<td>Titel:</td>
<td><%=bog.getTitel()%></td>
</tr>
<%
}
}
%>
<%if(searchnone.equals("none")) {
%>
Denne Kategori findes ikke
<%
}
%>
</body>
</html>
Jeg har inkluderet min bean og min servlet der skal returnerer alle de bøger der befinder sig inden for den aktuelle genre, kun repræsenteret ved titel. Denne konstruktør med kun titel er medtaget i min bean.
Servletten
package test;
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.net.*;
import java.sql.*;
import java.util.ArrayList;
public class listeServlet extends HttpServlet {
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
try {
String genre;
int counter =0;
DbUtil dbu = new DbUtil();
Connection con = dbu.getConnection();
Statement stmt = con.createStatement();
genre = request.getParameter("genre");
if(genre.length() > 0) {
ResultSet rs = stmt.executeQuery("SELECT titel FROM boeger WHERE genre = '" + genre + "'");
ArrayList boger = new ArrayList();
while(rs.next()) {
boger.add(new bog(rs.getString(1)));
}
request.setAttribute("search", "done");
request.setAttribute("boger", boger);
rs.close();
stmt.close();
counter = 1;
}
else {
if(counter ==0)
request.setAttribute("searchnone", "none");
}
con.close();
} catch (Exception e) {
}
getServletConfig().getServletContext().getRequestDispatcher("/index.jsp").forward(request, response);
}
}
BEANEN
package test;
public class bog {
private int isbn;
private String forfatter;
private String titel;
private String forlag;
private String beskrivelse;
public bog() {
isbn = 0;
forfatter = "";
titel = "";
forlag = "";
beskrivelse = "";
}
public bog(String titel) {
this.titel = titel;
}
public bog(int isbn, String forfatter, String titel, String forlag, String beskrivelse) {
this.isbn = isbn;
this.forfatter = forfatter;
this.titel = titel;
this.forlag = forlag;
this.beskrivelse = beskrivelse;
}
public int getIsbn() {
return isbn;
}
public void setIsbn(int isbn) {
this.isbn = isbn;
}
public String getForfatter() {
return forfatter;
}
public void setForfatter(String forfatter) {
this.forfatter = forfatter;
}
public String getTitel() {
return titel;
}
public void setTitel(String titel) {
this.titel = titel;
}
public String getForlag() {
return forlag;
}
public void setForlag(String forlag) {
this.forlag = forlag;
}
public String getBeskrivelse() {
return beskrivelse;
}
public void setBeskrivelse(String beskrivelse) {
this.beskrivelse = beskrivelse;
}
}
