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>