Ciao a tutti. Vorrei costruire una piccola web application che effettui l'autenticazione di un utente. Nello specifico:
1.Una jsp con una form per la login che accetta i parametri user e pwd
2.ActionForm che recuperi i dati
3.Action che esegua una query sul db passando alla query soltanto la user della form, ed eseguire il controllo sulla pwd successivamente
4.Una jsp che stampi la user dell'utente + msg di benvenuto se questi era già registrato
Sto utilizzando mysql, ho importato in eclipse il driver relativo (connector-j) ed ho poi creato un pool di connessioni su struts-config:
Action:codice:<data-sources> <data-source type="org.apache.tomcat.dbcp.dbcp.BasicDataSource"> <set-property property="driverClassName" value="com.mysql.jdbc.Driver" /> <set-property property="url" value="jdbc:mysql://localhost:3306/azienda?autoReconnect=true" /> <set-property property="username" value="root" /> <set-property property="password" value="artemska" /> <set-property property="maxActive" value="10" /> <set-property property="maxWait" value="5000" /> <set-property property="defaultAutoCommit" value="false" /> <set-property property="defaultReadOnly" value="false" /> <set-property property="validationQuery" value="SELECT COUNT(*) FROM test" /> </data-source> </data-sources>
Quando runno l'applicazione ed inserisco il campo user, viene fuori l'errore:codice:package org.authentication; import javax.servlet.http.*; import javax.sql.DataSource; import org.apache.struts.action.*; import org.connessione.LoginForm; import java.sql.*; public class AuthenticationAction extends Action { public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response)throws Exception{ LoginForm parametri=(LoginForm) form; String userName=parametri.getUserName(); String password=parametri.getPassword(); DataSource dataSource=null; java.sql.Connection myConnection=null; try { dataSource = getDataSource(request,"azienda"); myConnection = dataSource.getConnection(); Statement stmt=myConnection.createStatement(); ResultSet rst=stmt.executeQuery("SELECT user FROM utenti WHERE user='"+ userName + "'" ); if (rst!=null){ request.setAttribute("message", parametri.getUserName()); }else{ return mapping.findForward("no"); } } catch(SQLException e) { } finally { myConnection.close(); } return mapping.findForward("ok"); } private DataSource getDataSource(HttpServletRequest request) { // TODO Auto-generated method stub return null; } }
Dove sbaglio?codice:HTTP Status 500 - -------------------------------------------------------------------------------- type Exception report message description The server encountered an internal error () that prevented it from fulfilling this request. exception javax.servlet.ServletException: java.lang.NullPointerException org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:286) org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913) org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462) javax.servlet.http.HttpServlet.service(HttpServlet.java:637) javax.servlet.http.HttpServlet.service(HttpServlet.java:717) root cause java.lang.NullPointerException org.authentication.AuthenticationAction.execute(AuthenticationAction.java:42) org.apache.struts.chain.commands.servlet.ExecuteAction.execute(ExecuteAction.java:58) org.apache.struts.chain.commands.AbstractExecuteAction.execute(AbstractExecuteAction.java:67) org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:51) org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:191) org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:305) org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:191) org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:283) org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913) org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462) javax.servlet.http.HttpServlet.service(HttpServlet.java:637) javax.servlet.http.HttpServlet.service(HttpServlet.java:717

Rispondi quotando