前端代碼
<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重新添加,在測試。
