Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2010
    Messaggi
    205

    [jsp + java bean]errori in stampa

    Salve,
    ho creato una pagina jsp e il suo java bean per fare delle prove con i java bean:

    index.jsp
    codice:
    <%@page import="Bean.jspBean"%>
    <%@page contentType="text/html" pageEncoding="UTF-8"%>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
       "http://www.w3.org/TR/html4/loose.dtd">
    
        <%
        String cit="rho";
        String prov="mi";
        session.setAttribute("arg1", cit);
        session.setAttribute("arg2", prov);
    %>
    
    <html>
    
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
            <title>JSP Page</title>
        </head>
        <body>
            <% 
            HttpSession rq = request.getSession();
            String citta = (String)rq.getAttribute("arg1");
            String provincia = (String)rq.getAttribute("arg2");
            System.out.println("citta :" + citta);
            System.out.println("provincia :" + provincia);
             if(citta!=null && provincia!=null) {%>
             
    
    Nome, url</p>
             
    
    <%=jspBean.query(citta, provincia)%></p>
        
             <%}%>
    
        </body>
    </html>
    jspbean.java
    codice:
    package Bean;
    import java.sql.*;
    
    public class jspBean {
    
        private static String url="jdbc:mysql://localhost/hotel";
        private static String user="root";
        private static String pwd="root";
    
        public static String getUrl() {
            return url;
        }
    
        public static void setUrl(String url) {
            jspBean.url = url;
        }
    
        public static String getUser() {
            return user;
        }
    
        public static void setUser(String user) {
            jspBean.user = user;
        }
    
        public static String getPwd() {
            return pwd;
        }
    
        public static void setPwd(String pwd) {
            jspBean.pwd = pwd;
        }
    
        public static String query(String citta,String provincia) {
           String out="";
            try {
                 DriverManager.registerDriver(new com.mysql.jdbc.Driver());
                 Connection connessione=DriverManager.getConnection(url,user,pwd);
                 Statement statement=connessione.createStatement();
                 String SQL = "SELECT Nome,url From Hotel where citta='citta' and provincia='provincia'";
                 ResultSet rs=statement.executeQuery(SQL);
    
          
                 while(rs.next()) {
                     out= rs.getString("Nome");
                     
                     //out=rs.getString("url");
                     
                 }
            }
    
            catch(SQLException e) {
                		System.out.println("Si è verificato il seguente errore: " + e.getMessage());
            }
    
           return out;
                
        }
     }
    Vorrei capire come mai non mi restituisce nulla e capire come fare a modificare il metodo query per ottenere come risultato entrambi i valori restituiti dalla query?

    Grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2010
    Messaggi
    205
    Nessuna risposta? Non sono stato chiaro?

  3. #3
    Secondo me è sbagliata la query così lui cercherà nella tabella Hotel una tupla che avrà per città 'città' e per provincia 'provincia'.
    Come le hai messe tu sono stringhe e non variabili.
    Sostituiscila con :
    codice:
    "SELECT Nome,url From Hotel where citta='" + citta + "' and provincia='" + provincia + "'";
    Potresti anche utilizzare un PreparedStatement e nella stringa SQL usi i punti interrogativi ? che poi sostituisci con il setString prima dell'executeQuery.

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2010
    Messaggi
    205
    Originariamente inviato da snakeplinsky
    Secondo me è sbagliata la query così lui cercherà nella tabella Hotel una tupla che avrà per città 'città' e per provincia 'provincia'.
    Come le hai messe tu sono stringhe e non variabili.
    Sostituiscila con :
    codice:
    "SELECT Nome,url From Hotel where citta='" + citta + "' and provincia='" + provincia + "'";
    Potresti anche utilizzare un PreparedStatement e nella stringa SQL usi i punti interrogativi ? che poi sostituisci con il setString prima dell'executeQuery.
    Perfetto! grazie mille!

    Ho modificato così il metodo query:
    codice:
                 while(rs.next()) {
                     
                     out = rs.getString(1) + " " + rs.getString(2);
                     
                 }
    però così facendo non mi stampa tutti i risultati ma ne stampa solo uno come faccio?

  5. #5
    Così ti stampa solo l'ultimo che trova fatti ritornare una stringa html con tutti i risultati
    codice:
    while(rs.next()) {
                     out = out  + rs.getString(1) + " " + rs.getString(2); + "
    ";           
    }

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2010
    Messaggi
    205
    Originariamente inviato da snakeplinsky
    Così ti stampa solo l'ultimo che trova fatti ritornare una stringa html con tutti i risultati
    codice:
    while(rs.next()) {
                     out = out  + rs.getString(1) + " " + rs.getString(2); + "
    ";           
    }
    Grazie Mille!!!!!!!!!!

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.