ePrometeusCorsoJavaJava
testi articoli
Testi Articoli  Download
Home | Eshop | Java | Tools | Web | 
CorsoJava è ora Video! Free for all!
Clicca Qui!

SERVLET
Server side programming con Java Servlet
Le Servlet
Supporto per le servlet
Panoramica
Programmare con l'HTTP
Le Servlet HTTP
Richieste e risposte
Un esempio
Conclusioni
Bibliografia
L'Autore

<<< Un esempio >>>
// -*- mode: java -*-
// Servlet per la stampa di un database

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

public class List extends HttpServlet
{
   private void header(ServletOutputStream out) throws IOException
     {

	out.println("<HTML>");
        out.println("<HEAD>");
        out.println("<TITLE>Elenco Indirizzi</TITLE>");
        out.println("</HEAD>");
        out.println("<BODY>");
        out.println("<H1 align=center>Elenco Indirizzi</H1>");
        out.println("<p>");
        out.println("<table border>");
        out.println("<tr>");
        out.println("	<th>NOME");
        out.println("	<th>INDIRIZZO");
        out.println("	<th>EMAIL");
        out.println("	<th>TELEFONO");
        out.println("<tr>");
     }

 
   private String n2s(String s) { return (s==null || s.startsWith("null") ) ?  " " : s; }
   
   private void row(ServletOutputStream out, ResultSet rs) throws IOException, SQLException 
     {
	String s;
	out.println("<form action=Input method=POST><tr>");
	out.println("<td rowspan=3>"+(s=n2s(rs.getString("NOME"))));
	out.println("<input type=hidden name=NOME value='"+s+"'>");
	out.println("<td rowspan=3><i>"+(s=n2s(rs.getString("INDIRIZZO"))+"</i>"));
	out.println("<input type=hidden name=INDIRIZZO value='"+s+"'>");
	out.println("<td rowspan=3><tt>"+(s=n2s(rs.getString("EMAIL"))+"</tt>"));
	out.println("<input type=hidden name=EMAIL value='"+s+"'>");
	out.println("<td><tt>UFF.</tt> "+(s=n2s(rs.getString("UFFICIO"))));
	out.println("<input type=hidden name=UFFICIO value='"+s+"'>");		    
	out.println("<tr><td><tt>CASA</tt> "+n2s(rs.getString("CASA")));
	out.println("<input type=hidden name=CASA value='"+s+"'>");
	out.println("<tr><td><tt>CEL.</tt> "+n2s(rs.getString("CELLULARE")));
	out.println("<input type=hidden name=CELLULARE value='"+s+"'>");
	out.println("<tr><td colspan=4><font size=-2>"
		    +(s=n2s(rs.getString("NOTE"))+"</font>"));
	out.println("<input type=hidden name=NOTE value='"+s+"'>");
	out.println("</form>");

     }
   
   private void footer(ServletOutputStream out) throws IOException
     {

	out.println("</table>");
	out.println("<hr>");
	out.println("<center>");
	out.println("<font size=-1> Written by <i>Michele Sciabarrà</i>");
	out.println("<center>");
	out.println("</BODY>");
	out.println("</HTML>");
     }
   
   
   private void list(ServletOutputStream out) throws Exception
     {

	try {
	   Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
	   Connection con = DriverManager.getConnection("jdbc:odbc:agenda", "", "");
	   Statement stat = con.createStatement();
	   ResultSet rs = stat.executeQuery("SELECT * FROM agenda");	   
	   header(out);
	   while(rs.next()) 
	     row(out, rs);
	   footer(out);
	   
	   rs.close();
	   stat.close();
	   con.close();
	} catch(Exception e) {
	   out.println(e.toString());
	}
	
    }
   
    public void doGet (HttpServletRequest req, HttpServletResponse res)
	throws ServletException, IOException

     {
	res.setContentType("text/html");
	ServletOutputStream out = res.getOutputStream();
	try {
	   list(out);
	} catch(Exception e) { 
	   out.println(e.toString());
	}
     }
   
}

Nel Listato 1 possiamo vedere un semplice esempio: una servlet che stampa il risultato di una query ad un database accessibile via JDBC. Il risultato è mostrato in Figura 2. La classe List estende HttpServlet e ne ridefinisce il metodo doGet. Viene impostato per la risposta il tipo, con res.setContentType, dopodiché si stampa la risposta. Per comodità si è suddivisa la generazione della pagina di risposta in tre metodi, uno per stampare l'intestazione, uno per stampare una riga estratta dal database e infine uno per stampare la parte finale della pagina. L'esempio dovrebbe dare idea di quanto sia semplice sviluppare applicazioni server side utilizzando Java.

ePrometeus s.r.l. - Web Software House & Open Source System Integrator
MILANO - SAN BENEDETTO DEL TRONTO(AP)
Contatti: info@eprometeus.com