登陸的時候一旦選擇了[自動登錄]的選項,則需要在登陸成功后,附加下面的代碼應(yīng)為一般網(wǎng)站都提供保存用戶名的功能,所以我把這個寫到了外面。只有密碼是單獨處理的。 其中的host就是你的域名。 第一步,編寫login.jsp文件,內(nèi)容如下:
這樣,Cookie就生成了第二步,在用戶訪問網(wǎng)站的時候,如果檢測到?jīng)]有登陸,則進行下面的判斷,例如編寫一個index.jsp,內(nèi)容如下: 這部份代碼可以寫到action或servlet中。最后一個注意事項,應(yīng)該在退出登錄里面清除cookie,以免他無法換賬號登陸了! logout.jsp內(nèi)容如下: String host = request.getServerName();Cookie cookie = new Cookie("SESSION_LOGIN_USERNAME", username); // 保存用戶名到Cookiecookie.setPath("/");cookie.setDomain(host);cookie.setMaxAge(99999999);response.addCookie(cookie);if (ParamUtils.getBooleanParameter(request, "savePassword")) {// 保存密碼到Cookie,注意需要加密一下cookie = new Cookie("SESSION_LOGIN_PASSWORD", MD5.encode(u.getPassword()));cookie.setPath("/");cookie.setDomain(host);cookie.setMaxAge(99999999);response.addCookie(cookie);}
String usernameCookie = null;String passwordCookie = null;Cookie[] cookies = request.getCookies();if (cookies != null) {for (Cookie cookie : cookies) {if ("SESSION_LOGIN_USERNAME".equals(cookie.getName())) {usernameCookie = cookie.getValue(); // 得到cookie的用戶名}if ("SESSION_LOGIN_PASSWORD".equals(cookie.getName())) {passwordCookie = cookie.getValue(); // 得到cookie的密碼}}if (usernameCookie != null && passwordCookie != null) { // 如果存在if(Login.checkLogin(usernameCookie ,passwordCookie)){// 登陸成功的處理}else{// 登陸不成功的處理}}}
cookie = new Cookie("SESSION_LOGIN_PASSWORD", "");cookie.setPath("/");cookie.setMaxAge(99999999);cookie.setDomain(host);response.addCookie(cookie);