Visualizzazione dei risultati da 1 a 5 su 5

Discussione: [JSP]problema jsp

  1. #1

    [JSP]problema jsp

    Salve ragazzi, ho un problema con una jsp di login, spero possiate darmi una mano perché nn riesco a trovare l'errore.
    Ho un file index.html con una semplice form che mi fa il submit ad un'altra pagina; questa pagina è una jsp
    chiamata Home_Page.jsp che mi cerca in un database se esiste il nome utente e la password digitati nel file
    index.html. Mi da un errore e non riesco a capire quale possa essere. Il file access col mio database si chiama
    database.mdb e ha una tabella chiamata UTENTI con due campi , UserName e Password. Il file col database insieme con i due file sopra descritti stanno nella cartella
    C:\Programmi\Apache Software Foundation\Tomcat 5.5\webapps\ROOT\Prove
    Vi riporto qui il codice e in basso l'errore che il tomcat 5.5 mi da:

    codice index.html

    <html>
    <head>
    <title>Form</title>
    </head>
    <body>
    <div style="text-align:center">
    <form name="Login" action="Home_Page.jsp" method="post">
    UserName: <input name="txtUserName" type="text" value="" />

    Password: <input name="txtPassWord" type="text" value="" />

    <input id="submit" type="submit" value="Login!" />
    </form>
    </div>
    </body>
    </html>



    codice Home_Page.jsp :


    <%@ page language="java"%>
    <%@ page import="java.sql.*"%>
    <!DOCTYPE HTML PUBLIC "-//w3c//dtd html 4.0 transitional//en">
    <Html>
    <Head>
    <Title>Esito inserimento dati</Title>
    </Head>
    <Body BgColor="#FFFFFF">
    <Form Name = "frmMain" Method = "Post">
    <Center>
    <%
    //Dichiarazione Variabili;

    String strUserName = "";
    String strPassWord = "";
    String strRisultato = "";
    String strSelect = "SELECT ";
    String strFrom = "FROM ";
    String strWhere = "WHERE ";
    String strSql = "";
    Connection objConnessione = null;

    //Recupero i dati inseriti nella Form di Login

    strUserName = request.getParameter("txtUserName").toString();
    strPassWord = request.getParameter("txtPassWord").toString();

    //Carico il file di classe del driver per il collegamento al
    //DataBase con il ponte Odbc

    try
    {
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    }
    catch (ClassNotFoundException e)
    {
    System.out.println("Impossibile caricare il driver: "+ e);
    }

    try
    {
    //Apertura connessione al DataBase
    objConnessione = DriverManager.getConnection("Jdbc:Odbc:database");
    }
    catch (SQLException e)
    {
    System.out.println("Impossibile connettersi al DataBase.");
    }


    try
    {
    Statement objStatement = objConnessione.createStatement();

    //Creo istruzione SQL da eseguire

    strSelect = strSelect + "UserName, Password ";
    strFrom = strFrom + "UTENTI ";
    strWhere = strWhere + "UserName = '" + strUserName + "' AND PassWord = '" + strPassWord + "'";
    strSql = strSelect + strFrom + strWhere;


    ResultSet rstRecord = objStatement.executeQuery(strSql);

    if ((rstRecord.isFirst()) && (rstRecord.isLast()))
    {
    strRisultato = "Impossibile proseguire.UserName e/o PassWord errata.";
    }

    rstRecord.close();
    }
    catch (SQLException e)
    {
    System.out.println("Errore Sql: " + e);
    }

    if (strRisultato.length() != 0)
    {%>
    <Table>
    <tr>
    <td>
    <Label Name = "lblRisultato"><%=strRisultato%></Label>
    </td>
    </tr>
    </Table>



    <Input Type = "Button" Name = "btnIndietro" onClick = "javascript:window.history.back()" Value = "Torna Indietro">
    <%}
    else
    {
    response.sendRedirect( "Home_Page.jsp");
    }

    //Chiusura della Connessione
    objConnessione.close();%>
    </Center>
    </Form>
    </Body>
    </Html>



    Errore generato dal Tomcat 5.5 :



    type Exception report

    message

    description The server encountered an internal error () that prevented it from fulfilling this request.

    exception

    org.apache.jasper.JasperException: Exception in JSP: /Prove/Home_Page.jsp:53

    50:
    51: try
    52: {
    53: Statement objStatement = objConnessione.createStatement();
    54:
    55: //Creo istruzione SQL da eseguire
    56:


    Stacktrace:
    org.apache.jasper.servlet.JspServletWrapper.handle JspException(JspServletWrapper.java:504)
    org.apache.jasper.servlet.JspServletWrapper.servic e(JspServletWrapper.java:393)
    org.apache.jasper.servlet.JspServlet.serviceJspFil e(JspServlet.java:314)
    org.apache.jasper.servlet.JspServlet.service(JspSe rvlet.java:264)
    javax.servlet.http.HttpServlet.service(HttpServlet .java:802)


    root cause

    java.lang.NullPointerException
    org.apache.jsp.Prove.Home_005fPage_jsp._jspService (Home_005fPage_jsp.java:95)
    org.apache.jasper.runtime.HttpJspBase.service(Http JspBase.java:97)
    javax.servlet.http.HttpServlet.service(HttpServlet .java:802)
    org.apache.jasper.servlet.JspServletWrapper.servic e(JspServletWrapper.java:332)
    org.apache.jasper.servlet.JspServlet.serviceJspFil e(JspServlet.java:314)
    org.apache.jasper.servlet.JspServlet.service(JspSe rvlet.java:264)
    javax.servlet.http.HttpServlet.service(HttpServlet .java:802)




    GRAZIE

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    hai aggiunto la sorgente dei tuoi dati ad "Origine dei dati ODBC" in Strumenti di Amministrazione? Se non l'hai fatto, segui i semplici step che trovi qui:

    http://www.developer.com/db/article.php/10920_3571661_1
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  3. #3
    Salve,
    innanzitutto grazie per la risposta.
    Allora, io avevo già aggiunto la sorgente dei dati ad "Origine dei dati ODBC" ma la jsp nn funziona. Ho dato anche una occhiata al link che mi hai postato e ho fatto tutto come sta scritto nei vari step (che fra parentesi erano cose che già avevo fatto) ma nulla. Volevo solo sapere se magari era un errore di codice o se avevo io problemi col mio Tomcat ma nn credo perche altre jsp funzionanti le fa partire. Spero mi possiate aiutare.
    Grazie,

    Antonio

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    A me pare tutto abbastanza in ordine: per fare una prova ho creato una pagina ancora più semplice:

    codice:
    <%-- 
        Document   : index
        Created on : 23-mar-2008, 11.00.41
        Author     : Andrea
    --%>
    <%@page contentType="text/html" pageEncoding="UTF-8"%>
    <%@page import="java.sql.*;"  %>
    
    <% 
    Connection objConnessione = null;
    try {
        Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    }
    catch (ClassNotFoundException e) {
        System.out.println("Impossibile caricare il driver: "+ e);
    }
    
    try {
        //Apertura connessione al DataBase
        objConnessione = DriverManager.getConnection("Jdbc:Odbc:test");
    }
    catch (SQLException e) {
        System.out.println("Impossibile connettersi al DataBase.");
    }
    %>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
       "http://www.w3.org/TR/html4/loose.dtd">
    
    <html>
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
            <title>Connecting to an Access Database</title>
        </head>
        <body>
            <h2>Database Test</h2>
    <%       
            if (objConnessione != null) {
                   System.out.println("Tutto bene");
                   Statement st = objConnessione.createStatement();
                   boolean results = st.execute("SELECT * FROM user");                         
                   if (results) {
                       ResultSet rs = st.getResultSet();
                       while (rs.next()) {
                           out.print(rs.getString("name")+"
    ");
                       }
                   }
            }
    %>
        </body>
    </html>
    E questa va. Su Origine dei dati ho registrato il mio database di prova, test.mdb, con alias test e tutto funziona regolarmente.
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  5. #5
    ciao, grazie andrea,
    adesso funziona tutto. Si vede che c'era un problema nel codice. ho modificato il tutto in modo che si comporti come una vera e propria login. Adesso continuo col mio progetto. Se ho qualche altro problema posto il codice.
    Grazie ancora per la disponibilità,

    Antonio

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 © 2024 vBulletin Solutions, Inc. All rights reserved.