使用cookie设置记住或自动登入登入的用户名和密码

来源:互联网 发布:男包 知乎 上班 编辑:程序博客网 时间:2024/06/05 15:47
微笑
public static void remeberMeByCookie(HttpServletRequest request,HttpServletResponse response) throws UnsupportedEncodingException {//获取页面中的登录名和密码String name = request.getParameter("name");String password = request.getParameter("password");//创建2个Cookie,分别用来存放登录名和密码//处理Cookie中存在的中文字符String codeName = URLEncoder.encode(name, "UTF-8");Cookie nameCookie = new Cookie("name",codeName);Cookie passwordCookie = new Cookie("password",password);//设置Cookie的有效路径,有效路径定义为项目的根路径//System.out.println("path="+request.getContextPath());nameCookie.setPath(request.getContextPath()+"/");passwordCookie.setPath(request.getContextPath()+"/");/** * 从页面中获取记住我的复选框的值, *    * 如果有值,设置Cookie的有效时长 *    * 如果没有值,清空Cookie的有效时长 * <input type="checkbox" name="remeberMe" id="remeberMe" value="yes"> */String remeberMe = request.getParameter("remeberMe");//设置Cookie的有效时长if(remeberMe!=null && remeberMe.equals("yes")){nameCookie.setMaxAge(7*24*60*60);passwordCookie.setMaxAge(7*24*60*60);}//清空Cookie的有效时长else{nameCookie.setMaxAge(0);passwordCookie.setMaxAge(0);}//将2个Cookie的对象存放到response对象response.addCookie(nameCookie);response.addCookie(passwordCookie);}

在jsp页面中进行设置:

<%String name = "";String password = "";String checked = "";Cookie [] cookies = request.getCookies();for(int i=0;cookies!=null && i<cookies.length;i++){Cookie cookie = cookies[i];if(cookie!=null && "name".equals(cookie.getName())){name = URLDecoder.decode(cookie.getValue(),"UTF-8");checked = "checked";}if(cookie!=null && "password".equals(cookie.getName())){password = cookie.getValue();}}%>


原创粉丝点击