2017-11-13 4 views
-1

Ich versuche, ein Benutzerobjekt in Sitzung in Servlet1 zu speichern. In Servlet2 versuche ich, die Werte von der gleichen eingeloggten Sitzung von Servlet1 zu bekommen.Abrufen von Sitzung von einem anderen Servlet

Servlet1:

private void login(HttpServletRequest request, HttpServletResponse response) throws IOException { 
    request.setCharacterEncoding("UTF-8"); 

    String emailFromForm = request.getParameter("email").toLowerCase(); 
    String passwordFromForm = request.getParameter("passWord"); 

    try { 
     User userThatLogsIn = manager.getUser(emailFromForm); 
     String passwordFromDB = userThatLogsIn.getPassword(); 

     if (passwordFromDB.equals(passwordFromForm)) { 
      request.getSession().setAttribute("TheLoggedInUser", userThatLogsIn); 
      response.sendRedirect("/Slit/welcome.jsp"); 
     } else { 
      request.setAttribute("error", "Unknown login, try again"); 
      response.sendRedirect("/Slit/LoginFailed.jsp"); 
     } 
    } catch (NullPointerException nullPointer) { 
     System.err.println("NullPointerException: " + nullPointer.getMessage()); 
     response.sendRedirect("/Slit/LoginFailed.jsp"); 
    } 
} 

Servlet2: Im einen Nullpointer sessionaccept fnavn bei Mypage.MyPageServlet.sessionAccept (MyPageServlet.java:40)

private void sessionAccept(HttpServletRequest request, HttpServletResponse response) throws IOException { 
    HttpSession session = request.getSession(); 
    session.setMaxInactiveInterval(30 * 60); 
    User loggedInUser = (User) request.getAttribute("TheLoggedInUser"); 
    String fnavn = loggedInUser.getfName(); 
    String enavn = loggedInUser.getlName(); 
    String epost = loggedInUser.getEmail(); 


    request.getSession().setAttribute("messageJSP", "Velkommen" + epost); 
    response.sendRedirect("Innstillinger.jsp"); 

} 
+0

Im ersten Servlet haben Sie 'request.getSession(). SetAttribute (" TheLoggedInUser ", userThatLogsIn);'. Wenn Sie also diesen 'userThatLogsIn'-Wert im zweiten Servlet verwenden wollen, dann mögen Sie das. 'request.getSession(). getAttribute (" TheLoggedInUser ");' Diese Zeile 'User loggedInUser = (User) request.getAttribute (" TheLoggedInUser ");' muss durch 'User ersetzt werden loggedInUser = (User) request.getSession() .getAttribute ("TheLoggedInUser"); ' –

Antwort

0

User loggedInUser = (User) request.getAttribute("TheLoggedInUser"); 
Diese Linie bekommen

muss mit

ersetzt werden
User loggedInUser = (User) 
request.getSession().getAttribute("TheLoggedInUser"); 
Verwandte Themen