DatabaseJSp..confuso!

di il
3 risposte

DatabaseJSp..confuso!

Ciao a tutti , sono nuovo in questo forum ma è da un po che seguo le discussione e volevo complimentarmi per l'ottimo lavoro che svolgete.
Sono alle prime armi con la compilazione di pagine jsp..vediamo che sarete cosi gentili da risolvere questo mio problema .
Vorrei creare una pagina jsp con una form che , attraverso di essa(inserendo nome e cognome), ricerchi in dato database i valori cercati e ne restituisca i valori associati.
In questo caso è presente un campo nel database con nome=stefania , cognome=rossi, eta=xx.....ecc ecc
perdonatemi ma ho un po di confusione, come detto sono novello.
questo è il codice:

<%@page language="java" import="java.sql.*" %>

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<%Class.forName("com.mysql.jdbc.Driver");

Connection apriConn=DriverManager.getConnection("jdbc:mysql://localhost:3306", "root", "root");
Statement stato = apriConn.createStatement();
String nome=request.getParameter("nome");
String cognome=request.getParameter("cognome"); %>
<title>Database</title>
</head>
<body>
<form name="Login" method="POST">
<fieldset>
<legend> Login utente </legend>
<label for="nome"> Inserisci nome </label>
<input type="text" name="nome" id="nome">
<br></b>
<label for= "cognome"> Inserisci password </label>
<input type="text" name="cognome" id="cognome">
<br></b>
<input type="reset" value="reset" name="reset" />
<input type="submit" value="Entra" name="Entra" />





</fieldset>
</form>




<h4>Accesso utenti registrati</h4>

<%
try{

out.println(" <h1> Oggi è :</h1>");
java.util.Date ora = new java.util.Date();
out.println(ora);


stato.execute("use giuseppe");
String sql = "SELECT * FROM persone WHERE nome="+nome+"AND cognome="+ cognome;
ResultSet rs;
rs= stato.executeQuery(sql);

if(rs.next()){
out.write(rs.getString("nome"));//stampa i vari valori
out.write(rs.getString("cognome"));
out.write(rs.getString("eta"));
out.write(rs.getString("data"));
out.write(rs.getString("città"));
}
else{
out.write("L'utente non esiste");
}
}
catch (SQLException e){
out.write("errore");
}

finally{
out.write("ciao");
}

stato.close();
apriConn.close();
%>
</body>
</html>



e questo è l'output quando eseguo:
Login utente
Inserisci nome
Inserisci password

Accesso utenti registrati

Oggi è :

Tue Sep 16 12:18:37 CEST 2014 erroreciao

cioè la form viene disegnata correttemente...ma va in sqlexception..cioè non stampa poi nessun valore...aiuto dove sbalio??
Graziieeee

3 Risposte

  • Re: DatabaseJSp..confuso!

    
    String sql = "SELECT * FROM persone WHERE nome="+nome+"AND cognome="+ cognome;
    
    in questa stringa sql vedo il nome attaccato all'AND, cmq sia devi dare uno spazio
    inoltre i nomi di stringhe vanno tutti sotto apice
    
    String sql = "SELECT * FROM persone WHERE nome= '"+nome+"' AND cognome='"+ cognome+"'";
    

    altra cosa.
    sarebbe meglio specificare i nomi dei campi che vuoi ottenere dall'estrazione
    
    String sql = "SELECT nome, cognome, eta FROM persone WHERE nome= '"+nome+"' AND cognome='"+ cognome+"'";
    
    
    out.write(rs.getString("eta"));
    out.write(rs.getString("data"));
    out.write(rs.getString("città")
    
    Hai modellato l'eta come stringa? Anche la data ?
    altrimenti se l'eta è intera devi fare
    
    rs.getInt("eta");
    rs.getDate("data");
    

    E per finire che significa:
    
    stato.execute("use giuseppe");
    

  • Re: DatabaseJSp..confuso!

    Un consiglio sarebbe anche quello di lasciare il più pulita possibile la pagina jsp da codice java e demandare tutti i controlli ad una servlet. Finiti i controlli la servlet ripassa la palla alla jsp che il risultato dei controlli.

  • Re: DatabaseJSp..confuso!

    OK,risolto...avevo tralasciato un po di virgolette.
    Pensavo che il problema fosse strutturale,, infatti alcune cose non mi sono ben chiare..
    ad esempio:
    il botton che ho inseritto sotto la form , come fa a sapere che cosa deve eseguire?
    cioè se io sotto avessi messo dell altro codice , avrebbe eseguito quello?

    alsa81 ha scritto:


    Un consiglio sarebbe anche quello di lasciare il più pulita possibile la pagina jsp da codice java e demandare tutti i controlli ad una servlet. Finiti i controlli la servlet ripassa la palla alla jsp che il risultato dei controlli.

    intendi dire che sarebbe meglio usare la servlet al posto di una pagina jsp?


    graziee:)
Devi accedere o registrarti per scrivere nel forum
3 risposte