1. 程式人生 > >記住我 功能實現

記住我 功能實現

大家都知道pc端在系統登入時有一個類似於【記住我】的功能 ,做開發半年我沒有接觸過cookie,覺得可能很難,今天剛好自己抽幾分鐘時間學習了一下,發現很基本,在這裡也就算給一些學習者寫一個實現方法吧,分享出來大家批評指教:

登入頁面,記住我複選框


<td>

<input type="checkbox" name="remeberMe" id="remeberMe" value="yes"/>

</td>

首先登入需要使用者名稱和密碼,建立一個vo物件 MenuForm 

public class MenuForm {

private String name;

private Stringpassword;

public String getName() {

returnname;

}

public void setName(String name) {

this.name = name;

}

public String getPassword() {

returnpassword;

}

public void setPassword(String password) {

this.password = password;

}

}

第二步,登入的Action中獲取到頁面傳遞的使用者名稱和密碼,並呼叫記住我的方法:

public String menuHome(){

//獲取使用者名稱和密碼

String name = menuForm.getName();

String password = menuForm.getPassword();

/**  其他方法事件*/

/**記住我*/

LogonUtils.remeberMe(name,password,request,response);

}

第三步:Action程式碼的處理,建立LoginUtils

public class LogonUtils {

/**記住我功能*/

public static void remeberMe(String name, String password,

HttpServletRequest request

HttpServletResponse response) {

//1:建立2Cookie,存放指定值

Cookie nameCookie = new Cookie("name",name);

Cookie passwordCookie = new Cookie("password",password);

//2:設定Cookie的有效路徑(指定當前專案)

nameCookie.setPath(request.getContextPath()+"/");

passwordCookie.setPath(request.getContextPath()+"/");

//獲取頁面複選框的值(用作判斷)

String remeberMe = request.getParameter("remeberMe");

//此時表示複選框選中

//3:設定Cookie的有效時間(1周)

if(remeberMe!=null && remeberMe.equals("yes")){

nameCookie.setMaxAge(7*24*60*60);

passwordCookie.setMaxAge(7*24*60*60);

}

//此時表示複選框沒有被選中

else{

nameCookie.setMaxAge(0);

passwordCookie.setMaxAge(0);

}

//4:將Cookie存放到response

response.addCookie(nameCookie);

response.addCookie(passwordCookie);

}

}

第四步:在index.jsp頁面中讀取Cookie中的資料,jsp中巢狀java程式碼

<%

String name = "";

String password = "";

String checked = "";

Cookie [] cookies = request.getCookies();

if(cookies!=null && cookies.length>0){

for(Cookie cookie:cookies){

if(cookie.getName().equals("name")){

name = cookie.getValue();

checked = "checked";

}

if(cookie.getName().equals("password")){

password = cookie.getValue();

}

}

}

%>

這樣的缺點:將java程式碼放置到jsp上,要求jsp先要執行編譯java程式碼,然後再執行。效率會降低

分析:在跳轉到index.jsp頁面之前先從Cookie中獲取資料,放置到HttpRequest物件中進行顯示,這樣可以使用過濾器(filter)完成,過濾器在這因為時間原因就暫時不寫了。謝謝!

相關推薦

Shiro - RememberMe記住功能實現

【1】認證和記住我 ① 記住我 Shiro提供了記住我(RememberMe)的功能,比如訪問如淘寶等一些網站時,關閉了瀏覽器,下次再開啟時還是能記住你是誰,下次訪問時無需再登入即可訪問,基本流程如下: 首先在登入頁面選中RememberMe然後登入成功;如果是瀏覽器

登入記住功能實現

說明 前端設計 引用檔案 <script src="js/jquery.cookie.js"></script> jsp頁面一載入就執行判斷cookie中

記住 功能實現

大家都知道pc端在系統登入時有一個類似於【記住我】的功能 ,做開發半年我沒有接觸過cookie,覺得可能很難,今天剛好自己抽幾分鐘時間學習了一下,發現很基本,在這裡也就算給一些學習者寫一個實現方法吧,分享出來大家批評指教: 登入頁面,記住我複選框 <td>

RememberMe記住功能實現

【1】認證和記住我 ① 記住我 Shiro提供了記住我(RememberMe)的功能,比如訪問如淘寶等一些網站時,關閉了瀏覽器,下次再開啟時還是能記住你是誰,下次訪問時無需再登入即可訪問,基本流程如下: 首先在登入頁面選中RememberMe然後登入成功;如果

SpringSecurity(2)---記住功能實現

# SpringSecurity(2)---記住我功能實現 上一篇部落格實現了認證+授權的基本功能,這裡在這個基礎上,新增一個 **記住我的功能**。 上一篇部落格地址:[SpringSecurity(1)---認證+授權程式碼實現](https://www.cnblogs.com/qdhxhz/p/12

Spring Security、實現圖形驗證碼功能實現"記住"功能

說在前面 博主最近會有很多專案跟大家一起分享,做完後會上傳github上的,希望讀友們能給博主提提意見哈哈 這個專案是第三方登入和安全方面的,關於後臺與a

shiro中記住功能

pac 用戶 網頁服務器 tao 流程 word 朋友 value sda Shiro提供了記住我(RememberMe)的功能,比如訪問如淘寶等一些網站時,關閉了瀏覽器下次再打開時還是能記住你是誰,下次訪問時無需再登錄即可訪問,基本流程如下: 1、首先在登錄頁面選中Rem

5. Spring Boot + Spring Security 記住功能

個人理解:整合spring security框架,只需要簡單的配置即可 基本流程: 瀏覽器認證使用者名稱密碼請求,認證成功後,有一個TOkenRepository 來儲存使用者名稱和密碼,並且儲存到自動

SpringSecurity(七)新增記住功能

記住我基本原理 使用者認證成功後呼叫RemeberMeService服務,這個服務裡有一個TokenRepository,它會生成一個Token寫入瀏覽器Cookie,同時它還會使用TokenRepository將Token和使用者名稱寫入到資料庫中。 當用戶再次訪問

登入時記住密碼功能實現js

css: .checkActive { background: url(../images/right.png) no-repeat; border: 1px solid #41b3

spring-Security(三):記住實現下次免登入

記住我基本原理使用者認證成功之後呼叫RemeberMeService根據使用者名稱名生成Token由TokenRepository寫入到資料庫,同時也將Token寫入到瀏覽器的Cookie中重啟服務之後,使用者再次登入系統會由RememberMeAuthenticationF

SpringBoot學習:整合shiro自動登入功能(rememberMe記住功能

首先在shiro配置類中注入rememberMe管理器 /** * cookie物件; * rememberMeCookie()方法是設定Cookie的生成模版,比如cookie的name,cookie的有效時間等等。 * @return */ @Bean public

SpringBootSecurity學習(10)網頁版登入之記住功能

場景 很多登入都有記住我這個功能,在使用者登陸一次以後,系統會記住使用者一段時間,在這段時間,使用者不用反覆登陸就可以使用我們的系統。記住使用者功能的基本原理如下圖: 使用者登入的時候,請求傳送給過濾器UsernamePasswordAuthenticationFilter,當該過濾器認證成功後,會呼叫R

【jQuery】利用jQuery實現記住”的功能

jquer sms sep jquery實現 .com script lis put bar 【1】先下載jQuery.cookie插件:使用幫助請參考鏈接(https://github.com/carhartl/jquery-cookie)。 【2】安裝插件:

[JavaScript] session、cookie與“記住的登入狀態”的功能實現

Cookie的機制      Cookie是瀏覽器(User Agent)訪問一些網站後,這些網站存放在客戶端的一組資料,用於使網站等跟蹤使用者,實現使用者自定義功能。      Cookie的Domain和Path屬性標識了這個Cookie是哪一個網站傳送給瀏覽器的;Cookie的Expires屬性標識了

記住remember-me功能的幾種實現方式

        本文討論幾種記住我功能的實現方式。         原理:使用者登入後,服務端為使用者生成一個Token,並放入客戶端Cookie中。下次使用者登入,服務端驗證Cookie中的Token並自動登入。 簡單的Token生成方法            Tok

Spring Security框架下實現兩週內自動登入"記住"功能

本文是Spring Security系列中的一篇。在上一篇文章中,我們通過實現UserDetailsService和UserDetails介面,實現了動態的從資料庫載入使用者、角色、許可權相關資訊,從而實現了登入及授權相關的功能。這一節就在此基礎上新增,登入過程中經常使用的“記住我”功能,也就是我們經常會

Java使用SSM框架實現登錄頁面記住密碼功能

turn 頁面 賦值 ++ mage login ring 實現 member 最終效果展示: 1、登錄頁面JSP代碼 <label class="checkbox"> <input type="checkbox" name="remembe

近期在看的一段JS(誰能看出實現什麼功能)

示例程式碼: <script type="text/javascript"> !function(){ var e=/([http|https]:\/\/[a-zA-Z0-9\_\.]+\.baidu\.com)/gi, r=window.location.href,

web實現登入,記住密碼功能(cookie)

介面: <!DOCTYPE html> <html>     <head>         <meta charset="UTF-8">         <title>登入頁面</title>