View Full Version : [JAVA/SQL] Mostrare risultato query in una tabella
Alhazred
27-02-2008, 20:16
Sto facendo un po' di pratica con una web application.
Su una pagina ho creato una form dove inserire dei valori in alcuni campi, inviando la richiesta viene chiamata una servlet che si collega al DB e cerca se ci sono corrispondenze con quanto immesso nei campi della form.
Il ResultSet contiene il risultato, ora come faccio a passarlo e visualizzarlo in una JSP?
Alhazred
27-02-2008, 22:04
Credo di aver capito che devo mettere il ResultSet ottenuto dalla query nella servlet in un oggetto di sessione e passarlo alla JSP con un dispatcher, adesso perņ non riesco a capire come usarlo visto che nella JSP non riesco a dichiarare una variabile di tipo ResultSet.
Alhazred
01-03-2008, 12:44
Niente, non riesco a venirne a capo, come va modificata la servlet? Cosa devo scivere nella jsp?
Riporto qui sotto la servlet e la jsp
import java.io.IOException;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.sql.*;
public class SearchBook extends javax.servlet.http.HttpServlet implements javax.servlet.Servlet {
static final long serialVersionUID = 1L;
public SearchBook() {
super();
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String _autore = request.getParameter("autore");
String _titolo = request.getParameter("titolo");
String address;
try {
ConnectionManager conn = ConnectionManager.getInstance();
Connection dbconn = conn.getConnection();
Statement stmt = dbconn.createStatement();
ResultSet rs = null;
rs = stmt.executeQuery("use bookshop;");
if(!_autore.equals("") && !_titolo.equals("")) {
rs = stmt.executeQuery("Select ISBN, authors, title, summay FROM book WHERE authors='"+_autore+" AND title='"+_titolo+"';");
}
if(!_autore.equals("")) {
rs = stmt.executeQuery("Select ISBN, authors, title, summay FROM book WHERE authors='"+_autore+"';");
}
else if(!_titolo.equals("")) {
rs = stmt.executeQuery("Select ISBN, authors, title, summay FROM book WHERE title='"+_titolo+"';");
}
else {
address="/errsearch.jsp";
}
if(rs.next()==false){
address="/noresult.jsp";
}
else {
address="/searchresult";
}
HttpSession session = request.getSession();
session.setAttribute("rs", rs);
RequestDispatcher dispatcher = getServletContext().getRequestDispatcher(address);
dispatcher.forward(request, response);
}
catch (SQLException ex)
{
System.out.println("SQLException: " + ex.getMessage());
System.out.println("SQLState: " + ex.getSQLState());
System.out.println("VendorError: " + ex.getErrorCode());
}
}
}
La connessione al DB avviene tramite una classe esterna e funziona correttamente, anche le query sono corrette, ho provato a scriverle nella console di mysql e restituiscono i valori corretti.
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Risultato</title>
</head>
<body>
<center><h1>Risultato della ricerca</h1><br><br>
<%
%>
</center>
</body>
</html>
Alhazred
01-03-2008, 14:52
A quanto pare avevo capito come fare, ma non sapevo come far riconoscere il tipo ResultSet alla jsp... adesso lo so: <%@ page import="java.sql.ResultSet" %> e funziona tutto :)
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.