import java.io.*;
import java.util.*;
import java.sql.*;
import javax.servlet.*;
import javax.servlet.http.*;

/**
 * ServletQuery. Esempio di Servlet che si connette alla base di dati ed
 * esegue una semplice interrogazione.
 * I parametri vengono passati da una FORM HTML.
 *
 * @author Rosalba Rossato, Gabriele Pozzani
 * @version 1.0    
*/

public class ServletQuery extends HttpServlet {

    public void doGet(HttpServletRequest request,
                      HttpServletResponse response) 
        throws IOException, ServletException {

        PrintWriter out = response.getWriter();
	String sql;
	Connection con = null;
	PreparedStatement pstmt;
	ResultSet rs; 

	String url = "jdbc:postgresql://sqlserver.sci.univr.it/esercitazioni";

	/** 
	 * Inserire login e passw per l'accesso alla base di dati.
	 */

	String user = "";
	String passwd = "";

	String cognomeAutore = "";
	String nomeAutore = "";

	/** 
	 * Caricamento del driver JDBC per il database.
	 */
	try {
            Class.forName("org.postgresql.Driver");
	} catch (ClassNotFoundException cnfe) {
            log("Driver jdbc non trovato: " + cnfe.getMessage());
	}

	response.setContentType("text/html; charset=ISO-8859-1");
        
	out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\"");
	out.println("      \"http://www.w3.org/TR/REC-html40/loose.dtd\">");


        out.println("<html>");
        out.println("<head>");
    	out.println("<title>Negozio di dischi</title>");
        out.println("</head>");
        out.println("<body>");
        out.println("<h1>Autore</h1>");
        
	try {
            /**
             * Interrogazione parametrice per recuperare i dati di
             * un autore.
             */
            sql =  "SELECT * " +
                   "FROM autore " +
                   "WHERE cognome = ? AND nome = ?";

            /**
             * Parametri da passare all'interrogazione
             */
            cognomeAutore = request.getParameter("cognome");
            nomeAutore = request.getParameter("nome");

            /** 
             * Connessione alla base di dati
             */           
            con = DriverManager.getConnection(url, user, passwd);           
            pstmt = con.prepareStatement(sql);
            pstmt.setString(1, cognomeAutore);
            pstmt.setString(2, nomeAutore);

            /** 
             * Esecuzione dell'interrogazione
             */  
            rs=pstmt.executeQuery(); 
	
	    /** 
	     * Stampa dei parametri passati
	     */  
            out.println("<p>Ricerca dati dell'autore "
                        + request.getParameter("cognome")
			+ " " 
			+ request.getParameter("nome")
			+ ". </p>");
            
 	    /** 
	     * Analisi del result set
	     */
            while (rs.next()) {
                out.println("<hr>");
                out.println("<p>");
                out.println("<strong>Codice Fiscale:</strong> "+rs.getString("codice_fiscale"));
                out.println("<br>"); 
                out.println("<strong>Cognome:</strong> "+rs.getString("cognome"));
                out.println("<br>");
                out.println("<strong>Nome:</strong> "+rs.getString("nome"));
                out.println("<br>");
                out.println("<strong>Data di Nascita:</strong> "+rs.getDate("data_nascita"));
                out.println("<br>");
                out.println("<strong>Data di Morte:</strong> "+rs.getDate("data_morte"));
                out.println("<br>");
                out.println("</p>");
                out.println("<hr>");
            }	
            con.close();
	} catch (SQLException sqle) {
            log("drivermanager non trovato: "
		+ sqle.getMessage());
            
	    out.println("<p>Errore nella connessione al database: "
			+ sqle.getMessage()+"</p>");
	}
        
        out.println("</body>");
        out.println("</html>");       
    }



    
}
