Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2005
    Messaggi
    65

    [JSP]Utilizzo di Tomcat

    Ciao a tutti,

    sono alle prime armi, e devi fare un sito che sfrutti pagine jsp...

    Volevo usare Tomcat come webserver, ma ho problemi nel pubblicare pagine.

    Ho creato una cartella "2007" nella cartella webapps che conterrà tutti i miei files...

    ho aggiornato il file server.xml di tomcat aggiungendo la riga
    <Context path="/2007"docBase="2007" debug="0" />

    nel tag <host>



    ma quando chiamo la pagina homepage.html da Firefox ( http://localhost:8080/2007/homepage.html) , mi dà errore:

    description The requested resource (/2007/homepage.html) is not available.

    errore 404




    come mai??

  2. #2
    Utente di HTML.it L'avatar di nether
    Registrato dal
    Dec 2006
    Messaggi
    376
    se vai tranquillamente su http://localhost:8080 te lo visualizza correttamente?

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2005
    Messaggi
    65
    ho risolto quei problemi "burocratici" e ora ne saltano fuori altri più tecnici...

    dunque, ho creato una tabella in un db mysql con i dati di un medico, (username, password, nome, cognome).

    Tramite una form html vorrei spedire i dati (username e password) a una pagina jsp che vada a controllare se nel db ci sia qualche dottore corrispondente a quei dati e ne butti fuori poi relativi Nome e Cognome.

    codice:
    <% String username=request.getParameter("username");
    String password=request.getParameter("password");
    
    Class.forName("com.mysql.jdbc.Driver");
    
    Connection conn=DriverManager.getConnection("jdbc:mysql://localhost/2007/dbproject");
    Statement stmt=conn.createStatement();
    ResultSet rs=stmt.executeQuery("SELECT nome,cognome FROM medicoremoto WHERE (username=medicoremoto.username) AND (password=medicoremoto.password);");
    
    %>
    
    <%rs.next();%>
    questa parte dovrebbe servire dal pochissimo che so, a stabilire una connessione col database e eseguire la query...
    ma poi nn ho idee x come realizzare il prelevamento dei dati che mi servono (Nome e Cognome) e relativa visualizazione!


    ps: altri miei dubbi: per il database, posiziono la cartella direttamente dentro quella che ho creato in tomcat giusto?

    e poi: è giusta la sintassi della query?

  4. #4
    Utente di HTML.it L'avatar di nether
    Registrato dal
    Dec 2006
    Messaggi
    376
    ps: altri miei dubbi: per il database, posiziono la cartella direttamente dentro quella che ho creato in tomcat giusto?
    la posizione della cartella contenente il database non e' rilevante. Se installi mysql con le impostazioni di default, puoi connetterti al database passando per la porta 3306 (localhost:3306), indipendentemente da dove sia posizionato il tuo database nel file system.
    Ad esempio, con la stringa di connessione "jdbc:mysql://localhost:3306/dbproject" puoi accedere al db chiamato "dbproject" indipendentemente dal fatto che esso si trovi in "c:\pippo" o "c:\pippo\pluto\topolino\paperino".
    Inoltre devi specificare nome utente e password per accedere al database.

    e poi: è giusta la sintassi della query?
    no, non puoi farla cosi', sostanzialmente perche' le stringhe delle query jdbc sono "solo testo" per cui non puoi specificare al loro interno nomi di variabili che hai istanziato nel tuo codice java. Per farlo, devi creare un PreparedStatement utilizzando i "?" nella query, e poi settare i valori di quei "?". Poi finalmente potrai eseguire la query.

    il tuo codice diventa quindi:
    codice:
    <%
    String username=request.getParameter("username");
    String password=request.getParameter("password");
    
    Class.forName("com.mysql.jdbc.Driver");
    
    Connection conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/dbproject", "tuo_utente_db", "password_tuo_utente_db");
    String querySQL = "SELECT nome, cognome FROM medicoremoto WHERE medicoremoto.username = ? AND medicoremoto.password = ?";
    PreparedStatement ps = conn.prepareStatement(querySQL);
    ps.setString(1, username);
    ps.setString(2, password);
    ResultSet rs= ps.executeQuery();
    %>
    Dopodiche' puoi estrarre i risultati ottenuti dal tuo ResultSet...

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2005
    Messaggi
    65
    ti ringrazio....ora ho capito come estrarre i dati dal database...


    mentre per metterceli?

    Ora dovrei andare a mettere i dati in una tabella (già esistente ovviamente), ho provato a scrivere questa roba ma nn funziona
    Nella query sql devo ancora mettere i ? ?

    codice:
    String nome=request.getParameter("nome");
    String cognome=request.getParameter("cognome");
    String username=request.getParameter("username");
    String password=request.getParameter("password");
    String datanascita=request.getParameter("datanascita");
    String sesso=request.getParameter("sesso");
    String indirizzo=request.getParameter("indirizzo");
    
    Class.forName("com.mysql.jdbc.Driver");
    
    Connection conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/dbproject");
    rs = st.executeUpdate("INSERT INTO medicoremoto VALUES ('username','password','nome','cognome','datanascita','sesso','indirizzo');");
    PreparedStatement ps = conn.prepareStatement(querySQL);
    //ps.setString(1, username);
    //ps.setString(2, password);
    //ResultSet rs= ps.executeQuery();
    
    
    if (rs == 1)
    out.println("Inserimento eseguito correttamente");
    else
    out.println("Inserimento non eseguito");

  6. #6
    Utente di HTML.it L'avatar di nether
    Registrato dal
    Dec 2006
    Messaggi
    376
    esatto, devi usare ancora i "?":
    codice:
    String nome=request.getParameter("nome");
    String cognome=request.getParameter("cognome");
    String username=request.getParameter("username");
    String password=request.getParameter("password");
    String datanascita=request.getParameter("datanascita");
    String sesso=request.getParameter("sesso");
    String indirizzo=request.getParameter("indirizzo");
    
    Class.forName("com.mysql.jdbc.Driver");
    
    Connection conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/dbproject");
    String querySQL = "INSERT INTO medicoremoto (nome, cognome, username, password, datanascita, sesso, indirizzo) VALUES (?, ?, ?, ?, ?, ?, ?);");
    PreparedStatement ps = conn.prepareStatement(querySQL);
    ps.setString(1, nome);
    ps.setString(2, cognome);
    ps.setString(3, username);
    .....
    ps.setString(7, indirizzo);
    ps.executeUpdate();
    Non avrai un ResultSet perche' la query di insert nn restituisce risultati, a differenza delle query di select.

  7. #7
    Utente di HTML.it
    Registrato dal
    Jan 2005
    Messaggi
    65
    Bene, ora funziona anche l'inserimento, o almeno penso, perchè la pagina jsp di registrazione sembra operare senza errori, l'unico problema è che poi nel database non crea nulla!

    Oltre a chiedervi come risolvere questo problema, mi domandavo, è possibile farsi restituire un valore dalla quesry di inserimento per poi fare un controllo su questo valore?

    if valore == 1 -> tutto ok

    else

    errore




    ps: il codice nn lo riporto perchè è esattamente quello scritto sopra da nether!

    grazie mille ancora....

  8. #8
    Utente di HTML.it L'avatar di nether
    Registrato dal
    Dec 2006
    Messaggi
    376
    possibile che non ti scriva niente nel db senza darti alcun errore?

    per il controllo sull'inserimento si puo': il metodo executeUpdate() ritorna un int che corrisponde al numero di righe inserite, aggiornate o cancellate (http://java.sun.com/j2se/1.5.0/docs/...xecuteUpdate()).

    codice:
    int count = ps.executeUpdate();
    if(count == 0) {
        //errore: doveva inserire una riga e invece non ha inserito niente...
    }

  9. #9
    Utente di HTML.it
    Registrato dal
    Jan 2005
    Messaggi
    65
    ho risolto i problemi di inserimento....ora crea il record nel db perfettamente...
    l'unica cosa è che nn riesco a fare quello che mi hai detto:


    codice:
    int count = ps.executeUpdate();
    if(count == 1) {
        out.println("Registrazione avvenuta con successo");
    }

    ma dà sempre errore:

    codice:
    org.apache.jasper.JasperException: An exception occurred processing JSP page /registrautente.jsp at line 48
    45: ps.setString(5, datanascita);
    46: ps.setString(6, sesso);
    47: ps.setString(7, indirizzo);
    48: ps.executeUpdate();
    49: 
    50: int count = ps.executeUpdate();
    51: if(count == 1) {
    ps: nonostante ciò, il record nel db è stato creato correttamente :berto:

  10. #10
    Utente di HTML.it L'avatar di nether
    Registrato dal
    Dec 2006
    Messaggi
    376
    eh ci credo
    codice:
    45: ps.setString(5, datanascita);
    46: ps.setString(6, sesso);
    47: ps.setString(7, indirizzo);
    48: //ps.executeUpdate(); elimina questa riga, l'executeUpdate() e' gia' eseguito alla riga 50!!
    49: 
    50: int count = ps.executeUpdate();
    51: if(count == 1) {

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.