Søgefunktion i en servlet
Jeg har fået hjælp til at lave en søgefunktion til en servlet, men problemet ar at når den finder den første fundne viser den kun denne. F.eks. har jeg en database med en masse bøger. For at gøre det hele nemmerer viser jeg her min kode. Jeg øsnker at for hver bog der bliver fundet med en bestemt titel skal denne sendes til den nævnte jsp side.Men jeg kan ikke få den til at lede alle bøgerne igennem og sende de forskellige bøger mine bøger har et unikt id, en forfatter, titel, forlag og en beskrivelse.
package test;
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.net.*;
import java.sql.*;
public class searchServlet extends HttpServlet {
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
try {
String isbnIn;
int isbn;
String forfatter;
String titel;
String forlag;
String beskrivelse;
Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection("jdbc:mysql://localhost/bog", "pma", "fpra6712");
Statement stmt = con.createStatement();
/*
isbnIn = request.getParameter("isbn");
isbn = Integer.parseInt(isbnIn);
forfatter = request.getParameter("forfatter");
titel = request.getParameter("titel");
forlag = request.getParameter("forlag");
beskrivelse = request.getParameter("beskrivelse");
*/
/*
if (isbn > 0 && forfatter.length() == 0 && titel.length() == 0 ) {
}
if (forfatter.length() > 0 && titel.length() > 0) {
}
*/
ResultSet rs = stmt.executeQuery("SELECT isbn, forfatter, titel, forlag, beskrivelse FROM boeger WHERE titel = '" + request.getParameter("titel") + "'");
request.setAttribute("bog", new bog(rs.getInt(1), rs.getString(2), rs.getString(3), rs.getString(4), rs.getString(5)));
rs.next();
}
rs.close();
stmt.close();
con.close();
} catch (Exception e) {
}
getServletConfig().getServletContext().getRequestDispatcher("/index.jsp").forward(request, response);
}
}
Der skal ses bort fra det udkommenterede
VHer bog pakkes ned i en bean der ser sådan ud.
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(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;
}
}
Og den jsp side der viser bogen ser sådan ud
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Untitled</title>
</head>
<body>
<form method="post" action="searchServlet">
Titel: <input type="text" name="titel" size="20"/>
<br/>
<input type="submit" value="Søg"/>
</form>
<jsp:useBean id="bog" scope="request" class="test.bog"/>
Fundet bog:
<br/>
<br/>
<%=bog.getIsbn()%> <%=bog.getForfatter()%>
<%=bog.getTitel()%> <%=bog.getForlag()%> <%=bog.getBeskrivelse()%>
</body>
</html>
