前端代码
<form id="form" action="xxx" method="post"><div><input type="text" name="account" id="account" placeholder="账号"><input type="text" name="pwd" id="pwd" placeholder="密码"></div><div><ul><li><label><input type="checkbox" name="checkbox" value="1" checked="checked" /><span></span></label>记住密码</li><li><label><input type="checkbox" name="checkbox" value="2" /><span></span></label>自动登录</li></ul></div> </form> <a href="javascript:login()">登 录</a><script type="text/javascript">function login() {$("#form").submit();}//加载页面后加载次函数$().ready(function() {// 记住密码功能var str = decodeURIComponent(document.cookie.split(';')); // 获取Cookie alert(str);// 以下是Cookie数据处理逻辑// 不同的项目存储的Cookie不同,处理数据的逻辑不同// 要根据具体的Cookie值来截取账号、密码if (str.indexOf("loginInfo")>-1) {var arr = str.split(",");var loginInfo = arr[1];var arr = loginInfo.split("+");var name = arr[0];name = name.substring(name.lastIndexOf("=", name.length - 1) + 1);var phone = arr[1];//自动填充用户名和密码$("#name").val(name);$("#phone").val(phone);}}); </script>
后端代码
1 // 获取多选框(checkbox)的值 2 String[] checkbox = request.getParameterValues("checkbox"); 3 4 // 判断是否勾选功能 5 if (checkbox != null) {// 已勾选功能 6 for (String str : checkbox) { 7 // 判断是否勾选记住密码功能 8 if (str.equals("1")) { 9 // 组合登录信息 10 String loginInfo = name + "+" + phone; 11 // 将登陆信息编码 12 loginInfo = URLEncoder.encode(loginInfo, "UTF-8"); 13 // 创建Cookie 14 Cookie userCookie = new Cookie("loginInfo", loginInfo); 15 // 设置Cookie存活期限 16 userCookie.setMaxAge(30*24*60*60);//设置存活期一个月 17 // 设置所有路径下共享Cookie 18 userCookie.setPath("/"); 19 // 添加Cookie到服务器响应中 20 response.addCookie(userCookie); 21 } 22 // 判断是否勾选自动登录功能 23 if (str.equals("2")) { 24 session.setAttribute("agent", agent); 25 } 26 } 27 } else {// 未勾选功能,或取消勾选功能,删除Cookie信息 28 String loginInfo = name + "+" + phone; 29 loginInfo = URLEncoder.encode(loginInfo, "UTF-8"); 30 Cookie userCookie = new Cookie("loginInfo", loginInfo); 31 userCookie.setMaxAge(0);//删除cookie,只需要将失效时间设置为0即可,其他步骤一样 32 userCookie.setPath("/"); 33 response.addCookie(userCookie); 34 } 35 // 在测试中可能会出现一些问题,清除掉Cookie重新添加,在测试。