前端代码
<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) {// 已勾选功能 6for (String str : checkbox) { 7 // 判断是否勾选记住密码功能 8 if (str.equals("1")) { 9 // 组合登录信息10 String loginInfo = name + "+" + phone;11 // 将登陆信息编码12 loginInfo = URLEncoder.encode(loginInfo, "UTF-8");13 // 创建Cookie14 Cookie userCookie = new Cookie("loginInfo", loginInfo);15 // 设置Cookie存活期限16 userCookie.setMaxAge(30*24*60*60);//设置存活期一个月17 // 设置所有路径下共享Cookie18 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信息28String loginInfo = name + "+" + phone;29loginInfo = URLEncoder.encode(loginInfo, "UTF-8");30Cookie userCookie = new Cookie("loginInfo", loginInfo);31userCookie.setMaxAge(0);//删除cookie,只需要将失效时间设置为0即可,其他步骤一样32userCookie.setPath("/");33response.addCookie(userCookie);34 }35 // 在测试中可能会出现一些问题,清除掉Cookie重新添加,在测试。