2017-11-13 3 views
-1

私はサーブレット1のセッションでユーザーオブジェクトを保存しようとしています。 Servlet2では、同じログイン・セッションからServlet1から値を取得しようとしています。別のサーブレットからセッションを取得する

に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がMypage.MyPageServlet.sessionAcceptで fnavn nullポインタ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

があります。ですから、 'userThatLogsIn'を2番目のサーブレットで使用したい場合は、このようにします。 (ユーザー)request.getAttribute( "TheLoggedInUser"); 'はユーザーのloggedInUser =(ユーザー)request.getSession()に置き換えられています。 .getAttribute( "TheLoggedInUser"); ' –

答えて

0

このライン

User loggedInUser = (User) request.getAttribute("TheLoggedInUser"); 

あなたが `request.getSession()。setAttribute(" TheLoggedInUser "、userThatLogsIn);`を持っている最初のサーブレットでは、
User loggedInUser = (User) 
request.getSession().getAttribute("TheLoggedInUser"); 
関連する問題