1. 程式人生 > >用cookie實現記住用戶名和密碼

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

get username parameter space 服務 png value min put

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" /></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);
}

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