Ho creato una semplice servlet che va a recuperare da un database i dati dei calciatori di una squadra. La servlet è richiamata da un form che chiede i dati da visualizzare tramite una check list.
Unico criterio di selezione da immettere l'annata del ragazzo.
Non riesco a capire perchè funziona una volta sì e 10 no, mi sembra una cosa assurda, ma non ci salto fuori.
:master:
Se avete anche altri consigli per migliorare la servlet vi prego di farlo. Ciao a tutticodice:import ... public class Calciatori extends HttpServlet { public void service (HttpServletRequest req, HttpServletResponse res) throws IOException { res.setContentType("text/html"); PrintWriter out = res.getWriter(); String gn=req.getParameter("giornonascita"); String mn=req.getParameter("mesenascita"); String an=req.getParameter("annonascita"); String ln=req.getParameter("luogonascita"); String pn="prov"; String ind=req.getParameter("indirizzo"); String tel=req.getParameter("tel1"); String tel2="tel2"; String tel3="tel3"; String annata=req.getParameter("annata"); /* prepare the db connection */ String dbUrl="jdbc:odbc:db_archiviocalciatori"; String user=""; String password=""; try { /* the following command load the jdbc driver */ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); Connection c = DriverManager.getConnection(dbUrl,user,password); Statement s=c.createStatement(); if (annata.equals("aaaa")) { out.println("<html>"); out.println("<body>"); out.println(" ELENCO CALCIATORI</p>"); annata="1980"; int y= Integer.parseInt(annata); for (y=1980; y<=2010; y++) { annata=""+y; String query="SELECT cognome, nome, "+gn+", "+mn+", "+an+", "+ln+", "+pn+", "+ind+", "+tel+", "+tel2+", "+tel3+" FROM calciatori WHERE annonascita="+annata+" ORDER BY cognome, nome, "+an; ResultSet r=s.executeQuery(query); while(r.next()) { out.print(" "); out.print(r.getString("cognome")+""); out.print(r.getString("nome")+""); if (gn!=null){out.print(r.getString(gn)+"-");} if (mn!=null){out.print(r.getString(mn)+"-");} if (an!=null){out.print(r.getString(an)+"");} if (ln!=null){out.print(r.getString(ln)+"("+r.getString(pn)+")");} if (ind!=null){out.print(r.getString(ind)+"");} if (tel!=null){out.print(r.getString(tel)+""+r.getString(tel2)+""+r.getString(tel3));} out.print("</p>"); } s.close(); } } else { out.println("<html>"); out.println("<body>"); out.println(" ELENCO CALCIATORI NATI NEL "+annata+"</p>"); String query="SELECT cognome, nome, "+gn+", "+mn+", "+an+", "+ln+", "+pn+", "+ind+", "+tel+", "+tel2+", "+tel3+" FROM calciatori WHERE annonascita="+annata+" ORDER BY cognome, nome, "+an; ResultSet r=s.executeQuery(query); while(r.next()) { out.print(" "); out.print(r.getString("cognome")+""); out.print(r.getString("nome")+""); if (gn!=null){out.print(r.getString(gn)+"-");} if (mn!=null){out.print(r.getString(mn)+"-");} if (an!=null){out.print(r.getString(an)+"");} if (ln!=null){out.print(r.getString(ln)+"("+r.getString(pn)+")");} if (ind!=null){out.print(r.getString(ind)+"");} if (tel!=null){out.print(r.getString(tel)+""+r.getString(tel2)+""+r.getString(tel3));} out.print("</p>"); } s.close(); } } catch (Exception e) { out.println("<html>"); out.println("<body>"); out.println(" - ! - ERRORE NELLA QUERY - ! -</p>"); out.println(" I dati inseriti nel campo annata non sono corretti. Digitare un valore numerico di 4 cifre (ad esempio \"1990\") oppure lasciare \"aaaa\" per visualizzare tutti i calciatori tesserati a prescindere dall'anno di nascita. </p>"); } out.println(" <input type=\"button\" onclick=\"history.go(-1)\" value=\"INDIETRO\"></p>"); out.println("</body>"); out.println("</html>"); } }
![]()
Ty7
Java 1.3.1_10
Tomcat 3.3

Rispondi quotando