1、什麼是Cookiejavascript
cookie是一種WEB服務器經過瀏覽器在訪問者的硬盤上存儲信息的手段。Cookie的目的就是爲用戶帶來方便,爲網站帶來增值。雖然有着許多誤傳,事實上Cookie並不會形成嚴重的安全威脅。Cookie永遠不會以任何方式執行,所以也不會帶來病毒或攻擊你的系統。另外,因爲瀏覽器通常只容許存放300個Cookie,每一個站點最多存放20個Cookie,每一個Cookie的大小限制爲4KB,所以Cookie不會塞滿你的硬盤。css
例如,當咱們第一次訪問網站輸入用戶名密碼時,能夠選擇讓系統記住用戶名密碼,下次就不用從新輸入了,這就是典型的Cookie的應用。html
2、Cookie帶來的好處:前端
cookies給網站和用戶帶來的好處很是多:java
有些瀏覽器能夠禁用Cookie,因此不能使用Cookie來完成核心的業務。jquery
3、Cookie類的主要方法:json
int getMaxAge() 返回Cookie過時以前的最大時間,以秒計算。 int setMaxAge() 設置Cookie過時時間,以秒計算。 String getName() 返回Cookie的名字 String getValue() 返回Cookie的值。 void setValue(String newValue) cookie建立後設置一個新的值。
4、代碼實現記住密碼登陸功能: 瀏覽器
前端頁面代碼:安全
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Excel數據上傳系統-登陸</title> <link href="${pageContext.request.contextPath}/content/css/page/login.css" rel="stylesheet" type="text/css" /> </head> <body> <div class="second_body"> <form data-bind="submit:loginClick"> <div class="logo"></div> <div class="title-zh">Excel數據上傳系統</div> <div class="title-en" style="">Excel Data Upload System</div> <div class="message" data-bind="html:message"></div> <table border="0" style="width:300px;"> <tr> <td style="white-space:nowrap; padding-bottom: 5px;width:55px;">用戶名:</td> <td colspan="2"><input type="text" id="userCode" class="login" data-bind="value:form.userCode" /></td> </tr> <tr> <td class="lable" style="white-space:nowrap; letter-spacing: 0.5em; vertical-align: middle">密碼:</td> <td colspan="2"><input type="password" id="password" class="login" data-bind="value:form.password" /></td> </tr> <tr> <td></td> <td colspan="2"><input type="checkbox" data-bind="checked:form.remember" /><span>系統記住我</span></td> </tr> <tr> <td colspan="3" style="text-align:center"> <input type="submit" value="登陸" class="login_button" /> <input type="button" value="重置" class="reset_botton" data-bind="click:resetClick" /> </td> </tr> </table> </form> </div> <script type="text/javascript" src="${pageContext.request.contextPath}/content/js/jquery/jquery-1.8.1.min.js"></script> <script type="text/javascript" src="${pageContext.request.contextPath}/ligerUI/lib/jquery.cookie.js"></script> <script type="text/javascript" src="${pageContext.request.contextPath}/content/js/core/utils.js"></script> <script type="text/javascript" src="${pageContext.request.contextPath}/content/js/core/common.js"></script> <script type="text/javascript" src="${pageContext.request.contextPath}/content/js/core/knockout-3.4.1.js"></script> <script type="text/javascript" src="${pageContext.request.contextPath}/js/login.js"></script> <script type="text/javascript"> $(function () { ko.applyBindings(new viewModel()); }); </script> </body> </html>
後臺業務處理代碼:服務器
//登陸查詢 @RequestMapping(value={"/doLogin"},method ={RequestMethod.GET, RequestMethod.POST}) @ResponseBody public AjaxJson doLogin(@RequestBody Map<String, String> json,HttpServletRequest request,HttpServletResponse response){ AjaxJson resutl = new AjaxJson(); String loginName = json.get("userCode"); String password = json.get("password"); //用戶名密碼檢查 if ( StringUtils.isBlank(loginName) || StringUtils.isBlank(password)){ resutl.setSuccess(false); resutl.setMsg("用戶名或密碼不能爲空!"); }else { String passwordEncode = MD5Util.MD5Encode(password, "utf-8"); ExcelUser user = null; user = loginService.findUserByLoginName(loginName); if(user == null) { resutl.setSuccess(false); resutl.setMsg("該用戶名不存在!"); }else { user = loginService.findUserByNameAndPwd(loginName, passwordEncode); if(user == null) { resutl.setSuccess(false); resutl.setMsg("密碼輸入錯誤,請從新輸入"); }else { if(user.getUser_status()!=null && user.getUser_status().equals("0")) { resutl.setSuccess(false); resutl.setMsg("該用戶名已被禁用,請聯繫管理員!"); }else { resutl.setObj(user); Map<String, String> map = new HashMap<>(); map.put("userCode", loginName); map.put("userName", user.getUser_name()); map.put("isOauthUser", "0"); JSONObject jsonObject=JSONObject.fromObject(map); System.out.println(jsonObject.toString()); request.getSession().setAttribute("LOGIN_USER",jsonObject); //建立兩個Cookie對象 Cookie nameCookie = new Cookie("userCode", loginName); Cookie pwdCookie = new Cookie("password", password); if("true".equals(String.valueOf(json.get("remember")))){ //設置Cookie的有效期爲10天 nameCookie.setMaxAge(60 * 60 * 24 * 10); pwdCookie.setMaxAge(60 * 60 * 24 * 10); response.addCookie(nameCookie); response.addCookie(pwdCookie); }else { //使其cookie失效 nameCookie.setMaxAge(0); pwdCookie.setMaxAge(0); response.addCookie(nameCookie); response.addCookie(pwdCookie); } } } } } return resutl; }
當登陸成功以後,再退出的話,就無須要再輸入用戶名和密碼了!
若是這篇文章對您有所幫助,請隨便打賞一下做爲鼓勵,我會再接再礪的!!!