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

來源:互聯網
上載者:User

登入頁面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.     
  14.     <form action="servlet/Login" method="post">   
  15.         帳號:<input type="text" class="txt" name="username" value=<%=userInfo[0] %>/><br/>   
  16.         密碼:<input type="password" class="txt" name="password" value=<%=userInfo[1] %>/><br/>   
  17.         允許寫入Cookie:<input type="radio" name="agree" value="yes" checked/>是<input type="radio" name="agree" value="no"/>否<br/>   
  18.         <input type="submit" value="提交" />        <input type="reset" value="取消" />   
  19.     </form>   
  20.  </body>  

Servlet中doPost方法

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

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

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

結果頁面

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>  

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.