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