1. 程式人生 > >Jsp頁面獲取不到Servlet中session儲存的值

Jsp頁面獲取不到Servlet中session儲存的值

登入頁面login.jsp

Code:
  1. <body>   
  2.    <%   
  3.       String[] userInfo={"",""};   
  4.       Cookie[] cookie=request.getCookies();   
  5. if(cookie!=null) {   
  6. for(int i=0; i<cookie.length; i++) {   
  7. if(cookie[i].getName().equals("loginInfo")) {   
  8.              userInfo = cookie[i].getValue().split(
    "#");   
  9.            }   
  10.          }   
  11.       }   
  12.   %>   
  13.     <form action="servlet/Login" method="post">   
  14.         賬號:<input type="text"class="txt" name="username" value=<%=userInfo[0] %>/><br/>   
  15.         密碼:<input type="password"class="txt"
     name="password" value=<%=userInfo[1] %>/><br/>   
  16.         允許寫入Cookie:<input type="radio" name="agree" value="yes" checked/>是<input type="radio" name="agree" value="no"/>否<br/>   
  17.         <input type="submit" value="提交" />        <input type="reset" value=
    "取消" />   
  18.     </form>   
  19.  </body>  

Servlet中doPost方法

如果doPost方法中均使用response.sendRedirect(request.getContextPath()+"/login.jsp");在result.jsp中始終得到的是null

就是說session裡面的值始終得不到,在網上找了很久也沒找到解決的方法。

Code:
  1. publicvoid doPost(HttpServletRequest request, HttpServletResponse response)   
  2. throws ServletException, IOException {   
  3.         response.setContentType("text/html");   
  4.         request.setCharacterEncoding("utf-8");   
  5.         response.setCharacterEncoding("utf-8");   
  6.         String userName = request.getParameter("username");   
  7.         String password = request.getParameter("password");   
  8.         String agree = request.getParameter("agree");   
  9.         User u = new User();   
  10.         u.setName(userName);   
  11.         u.setPassword(password);   
  12.         HttpSession session = null;   
  13. if(u.canPass()) {   
  14. if(agree.equals("yes")) {   
  15.                 Cookie myCookie = new Cookie("loginInfo", userName+"#"+password);   
  16.                 myCookie.setMaxAge(60*60*24*7);   
  17.                 response.addCookie(myCookie);   
  18.                 session = request.getSession();   
  19.                 session.setAttribute("user",(User)u);   
  20.             }   
  21.             ServletContext sc = getServletContext();   
  22.             RequestDispatcher rd = null;   
  23.             rd = sc.getRequestDispatcher("/result.jsp"); //定向的頁面
  24.             rd.forward(request, response);   
  25.         } else {   
  26.             response.sendRedirect(request.getContextPath()+"/login.jsp");   
  27. return;   
  28.         }   
  29.     }  

結果頁面

Code:
  1. <body>   
  2.     <%   
  3.         User u = (User)session.getAttribute("user");   
  4.         System.out.println(u);   
  5. if(u==null) {   
  6.             u = new User();   
  7.             u.setName("");   
  8.             u.setPassword("");   
  9.         }   
  10.     %>   
  11.            當前登入使用者的資訊:賬號(<%=u.getName() %>)密碼(<%=u.getPassword() %>)   
  12.   </body>