您的位置:首页 > Web前端 > JavaScript

jsp servlet 实现记住我功能实现

2016-05-17 00:00 260 查看
http://blog.csdn.net/v123411739/article/details/26404691

1、登陆的时候 后台servlet

if(user==null){

}else{
request.getSession().put("user", user);
//处理Cookie
addCookie(model.getName(),model.getPassword(),response,request);
return "toIndex";
}

Cookie处理:

/**Cookie的实现	**/
private void addCookie(String name, String password,HttpServletResponse response, HttpServletRequest request) throws UnsupportedEncodingException {
if(StringUtils.isNotBlank(name)&&StringUtils.isNotBlank(password)){
//创建Cookie
Cookie nameCookie=new Cookie("name",URLEncoder.encode(name,"utf-8"));
Cookie pswCookie=new Cookie("psw",password);

//设置Cookie的父路径
nameCookie.setPath(request.getContextPath()+"/");
pswCookie.setPath(request.getContextPath()+"/");

//获取是否保存Cookie
String rememberMe=request.getParameter("rememberMe");
if(rememberMe==null){//不保存Cookie
nameCookie.setMaxAge(0);
pswCookie.setMaxAge(0);
}else{//保存Cookie的时间长度,单位为秒
nameCookie.setMaxAge(7*24*60*60);
pswCookie.setMaxAge(7*24*60*60);
}
//加入Cookie到响应头
response.addCookie(nameCookie);
response.addCookie(pswCookie);
}
}

2、jsp的处理

在登陆的JSP页面中加入下面代码,以获得用户名和密码并自动填写:

<%
String name="";
String psw="";
String checked="";
Cookie[] cookies=request.getCookies();
if(cookies!=null&&cookies.length>0){
//遍历Cookie
for(int i=0;i<cookies.length;i++){
Cookie cookie=cookies[i];
//此处类似与Map有name和value两个字段,name相等才赋值,并处理编码问题
if("name".equals(cookie.getName())){
name=URLDecoder.decode(cookie.getValue(),"utf-8");
//将"记住我"设置为勾选
checked="checked";
}
if("psw".equals(cookie.getName())){
psw=cookie.getValue();
}
}
}
%>


最后对用户名,密码,记住我字段添加value即可:

<TR>
<TD class="td">用户帐号:</TD>
<TD class="td"><input name="name" type="text" value="<%=name %>" id="name"/></TD>
</TR>
<TR>
<TD class="td">登录密码:</TD>
<TD class="td"><input name="password" type="password" value="<%=psw %>" id="password"></TD>
</TR>
<TR>
<TD class="td">记住我:</TD>
<TD class="td"><input name="rememberMe" type="checkbox" id="rememberMe" class="checkbox" <%=checked %>></TD>
</TR>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: