用cookie實現記住用戶名和密碼


1、當第一次發送請求時,在jsp頁面並不能獲取cookie對象,第一次是addCookie,之后再請求時才能獲得。

session和sessionid在服務器端生成的時候,同時把sessionID放在cookie中,相當於response.add("JSESSIONID",session)

2、如何在jsp頁面獲得cookie對象並顯示在頁面。

<%

String username="";
String password="";
Cookie [] cookies=request.getCookies();
if(cookies!=null){
for(Cookie cookie:cookies){
  //獲取cookie的值
  if(cookie.getName().equals("JSESSIONID")){
  System.out.println("value:"+cookie.getValue());
}
//從cookie中獲取用戶名和密碼
if(cookie.getName().equals("user")){
  username=cookie.getValue().split("-")[0];
  password=cookie.getValue().split("-")[1];
}
}
}else{
  System.out.println("null");
}
//判斷記住密碼復選框的狀態
String check="";
if(!username.equals("")&&!password.equals("")){
  //如果用戶名和密碼都不為空,則設置復選框的狀態為選中狀態,否則為非選中狀態
  check="checked";
}

%>
</head>

<body>
<div id="container">
  <div class="logo">
    <a href="#"><img src="assets/logo.png" alt="" /></a>
  </div>
  <div id="box">
    <form name="adminLogin" action="<%=request.getContextPath() %>/AdminLoginServelet" method="post">
      <p class="main">
        <label>Username: </label>
        <input name="a_name" value="<%=username %>" /> 
        <label>Password: </label>
        <input type="password" name="a_password" value="<%=password %>">
      </p>

      <p class="space">
        <span><input type="checkbox" name="remeber" value="on" <%=check %> />Remember me</span>
        <input type="submit" value="登陸" class="login" />
      </p>
    </form>
  </div>
</div>
</body>

3、在sevlet中設置cookie的user對象

//獲取是否記住密碼復選框的狀態
String remeber[] =request.getParameterValues("remeber");
//選中狀態
if(remeber!=null&remeber[0].equals("on")){
  Cookie cookie=new Cookie("user",a_name+"-"+a_password);
  //設置cookie的生命周期
  cookie.setMaxAge(365*60*24*60);
  response.addCookie(cookie);
}else{
  //未選中狀態
  Cookie cookie=new Cookie("user","");
  cookie.setMaxAge(0);
  response.addCookie(cookie);
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM