buongiorno avrei un problema con la creazione della sessione per far loggare un cliente al sito.
In pratica il cliente inserisc i dati nella pagina di loggin e tramite una servlet catturo i dati inseriti e controllo nel database se tali dati corrispondono a questo punto dovrei creare la sessione ma quando la creo mi risulta sempre null e non riesco a capire il perche
login page
codice HTML:<%@ page contentType="text/html; charset=UTF-8" import="java.util.*,oggetti.Cliente"%> <!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=ISO-8859-1"><meta name="viewport" content="width=device-width, initial-scale=1"><script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script><title>LOGIN SU AMERICAN !</title> <style type ="text/css"> @import url("css/registrazione.css");</style> <script src="script/val.js" type="text/javascript"></script> <script type="text/javascript"> $(document).ready(function() { $("li.login").css({"background-color":"rgba( 160,82,45, 0.6)"}); }); </script> </head><body><%if(cliente==null) {%><%@ include file="menu.html" %> <%} %> <%if(cliente!=null) {%><%@ include file="menuLogged.html" %> <%} %> <!-- manca la verifica del menu da inviare e la segnalazione di user o pass sbagliati --> <div class="body"> <br> <br><p class="erroreemail"> EMAIL GIA ESISTENTE </p><p class="erroreusername"> USERNAME GIA ESISTENTE </p> <br> <div class="form"> <div class="log"><p class="nolog">Effettua Il Login !</p><br><form name="reg" id="login" method="post" onsubmit="return validazione2()" action ="ClienteLogin"> <p id="mu"> </p>Username: <input type = "text" name = "username" onblur="valUsername()">* <br><br><p id="mp"> </p>Password: <input type = "password" name = "password" onblur="valPassword()">* <br><br> <input class="invia" type="submit" value="invia" ></form> </div><div class="reg"> <p class="nolog">Non Sei Ancora Registrato? <br> Cosa Aspetti Registrati</p><br><br> <a class="reglink" href="Registrazione.jsp">REGISTRATI</a> </div></div> </div><%@ include file="footer.html" %></body></html>
servlet :
codice:package serverlet; import java.io.IOException; import java.sql.SQLException; import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import modelDM.ClienteModelDM; import oggetti.Cliente; import oggetti.FileGestione; @WebServlet("/ClienteLogin") public class ClienteLogin extends HttpServlet { private static final long serialVersionUID = 1L; static ClienteModelDM model = new ClienteModelDM(); public ClienteLogin() { super(); } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { int flag = -1; int error=0; //error =sara uguale a 1 se l username è inesistente o a 2 se la password non coincide Cliente cl=null; String u = request.getParameter("username"); String p = request.getParameter("password"); try { cl= model.doRetrieveByKey(u); System.out.println("prima degli if "+ cl.toString()); if(cl==null){ error=1; flag=0; } else if(!(cl.getPassword().equals(p))){ error=2; flag=0; } else{flag=1; System.out.println("flag =1 "+cl.getUsername());} } catch (SQLException e1) { e1.printStackTrace(); } System.out.println(" flag = "+flag +" seconda volta = "+ cl.getUsername()); //FIN QUI VA TUTTO BENE...... if(flag ==1){ System.out.println("prima degli if "+ cl.toString()); HttpSession session=request.getSession(); Cliente cli = (Cliente)request.getSession().getAttribute("cliente"); if(cli == null) { cli = new Cliente(); cli=cl; request.getSession().setAttribute("cliente", cli); System.out.println("nell if "+request.getAttribute("cliente")); //qui stampa null } System.out.println("session "+session.toString()); session.setAttribute("cliente",cli); session.setAttribute("errore", error); System.out.println(" "+request.getAttribute("cliente")); //qui stampa null System.out.println(" "+request.getAttribute("errore")); //qui stampa null System.out.println("dovrei aver creto la sessione "); RequestDispatcher dispatcher = getServletContext().getRequestDispatcher("/AreaRiservata.jsp"); dispatcher.forward(request, response); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } }
quesrto è il risultato delle varie system out :
prima degli if Cliente [nome=antonio, cognome=corsuto, username=ciao, password=ciao, email=ciao@cors.it, sesso=M, cellulare=3457896542, dataNascita=1995-1-14]
flag =1 ciao
flag = 1 seconda volta = ciao
prima degli if Cliente [nome=antonio, cognome=corsuto, username=ciao, password=ciao, email=ciao@cors.it, sesso=M, cellulare=3457896542, dataNascita=1995-1-14]
nell if null
session org.apache.catalina.session.StandardSessionFacade@ 965e548
null
null
dovrei aver creto la sessione

Rispondi quotando
