1. 程式人生 > >通過cookie記住使用者名稱和密碼

通過cookie記住使用者名稱和密碼

1.登陸頁面如下:


每個欄位對應的屬性name如下表:

使用者帳號 name
登陸密碼 password
驗證碼 checkNum
記住我 rememberMe

2.Action中的處理如下:

在使用者第一次登陸後,進行Cookie進行處理

登陸處理

  1. /**登陸*/
  2. public String login() throws Exception{  
  3.     //處理驗證碼:判斷驗證碼輸入的是否正確
  4.     boolean flag=VerificationCodeUtil.isCheckNum(request);  
  5.     if(!flag){  
  6.         this
    .addFieldError("checkNum""驗證碼有誤");  
  7.         return"loginUI";  
  8.     }  
  9.     User user=userService.findByLoginNameAndPassword(model.getName(),model.getPassword());  
  10.     if(user==null){  
  11.         addFieldError("login""使用者名稱或密碼不正確");  
  12.         return"loginUI";  
  13.     }else{  
  14.         ActionContext.getContext().getSession().put("user"
    , user);  
  15.         //處理Cookie
  16.         addCookie(model.getName(),model.getPassword(),response,request);  
  17.         return"toIndex";  
  18.     }     
  19. }  
Cookie處理:
  1. /**Cookie的實現    **/
  2. privatevoid addCookie(String name, String password,HttpServletResponse response, HttpServletRequest request) throws UnsupportedEncodingException {  
  3.     if(StringUtils.isNotBlank(name)&&StringUtils.isNotBlank(password)){  
  4.         //建立Cookie
  5.         Cookie nameCookie=new Cookie("name",URLEncoder.encode(name,"utf-8"));  
  6.         Cookie pswCookie=new Cookie("psw",password);  
  7.         //設定Cookie的父路徑
  8.         nameCookie.setPath(request.getContextPath()+"/");  
  9.         pswCookie.setPath(request.getContextPath()+"/");  
  10.         //獲取是否儲存Cookie
  11.         String rememberMe=request.getParameter("rememberMe");  
  12.         if(rememberMe==null){//不儲存Cookie
  13.             nameCookie.setMaxAge(0);  
  14.             pswCookie.setMaxAge(0);  
  15.         }else{//儲存Cookie的時間長度,單位為秒
  16.             nameCookie.setMaxAge(7*24*60*60);  
  17.             pswCookie.setMaxAge(7*24*60*60);  
  18.         }  
  19.         //加入Cookie到響應頭
  20.         response.addCookie(nameCookie);  
  21.         response.addCookie(pswCookie);  
  22.     }  
  23. }  

3.JSP頁面的處理如下:

在登陸的JSP頁面中加入下面程式碼,以獲得使用者名稱和密碼並自動填寫:
  1. <%  
  2.     String name="";  
  3.     String psw="";  
  4.     String checked="";  
  5.     Cookie[] cookies=request.getCookies();  
  6.     if(cookies!=null&&cookies.length>0){   
  7.         //遍歷Cookie  
  8.         for(int i=0;i<cookies.length;i++){  
  9.             Cookie cookie=cookies[i];  
  10.             //此處類似與Map有name和value兩個欄位,name相等才賦值,並處理編碼問題   
  11.             if("name".equals(cookie.getName())){  
  12.                 name=URLDecoder.decode(cookie.getValue(),"utf-8");  
  13.                 //將"記住我"設定為勾選   
  14.                 checked="checked";  
  15.             }  
  16.             if("psw".equals(cookie.getName())){  
  17.                 psw=cookie.getValue();  
  18.             }  
  19.         }  
  20.     }  
  21.  %>

最後對使用者名稱,密碼,記住我欄位新增value即可:
  1. <TR>
  2.     <TDclass="td">使用者帳號:</TD>
  3.     <TDclass="td"><inputname="name"type="text"value="<%=name %>"id="name"/></TD>
  4. </TR>
  5. <TR>
  6.     <TDclass="td">登入密碼:</TD>
  7.     <TDclass="td"><inputname="password"type="password"value="<%=psw %>"id="password"></TD>
  8. </TR>
  9. <TR>
  10.     <TDclass="td">記住我:</TD>
  11.     <TDclass="td"><inputname="rememberMe"type="checkbox"id="rememberMe"class="checkbox"<%=checked %>></TD>
  12. </TR>

4.可能出現的問題

如果出現設定了卻沒有自動填寫使用者名稱和密碼,則可能是地址的問題:

解決辦法:

1.進入Internet選項,點選瀏覽歷史記錄一欄的設定


2.進入瀏覽記錄設定後,點選檢視檔案


3.在彈出的資料夾裡找到Cookie檔案,名字為你的專案名+“/”,格式如下圖,這個檔案一般在資料夾的最後面,將此檔案複製到桌面,注:此檔案是無法直接在該資料夾裡開啟的。


4.如下圖,第三行為儲存專案工程的路徑,此時在Action裡的Cookie處理中,根據該地址設定對應的Cookie父路徑即可,上文已經設定。

相關推薦

通過cookie記住使用者名稱密碼

1.登陸頁面如下: 每個欄位對應的屬性name如下表: 使用者帳號 name 登陸密碼 password 驗證碼 checkNum 記住我 rememberMe 2.Action中的處理

cookie實現記住用戶名密碼

get username parameter space 服務 png value min put 1、當第一次發送請求時,在jsp頁面並不能獲取cookie對象,第一次是addCookie,之後再請求時才能獲得。 session和sessionid在服務器端生成的時候,同

使用jquery.cookie.js實現記住使用者資訊(下面以web的記住登入名密碼為例進行說明)

一、在你需要使用的介面匯入jquery.cookie.js(改js包在文章尾部提供給大家) <script type="text/javascript" src="(根據你的路徑來定)/jque

cookie中儲存使用者名稱密碼及如何寫程式通過cookie獲取使用者名稱密碼

cookie中儲存使用者名稱和密碼在網站中,我們經常看到每當我們準備登陸時,網頁詢問我們是否儲存使用者名稱 cookie中儲存使用者名稱和密碼   在網站中,我們經常看到每當我們準備登陸時,網頁詢問我們是否儲存使用者名稱和密碼,以便下次登陸時不用再次輸入。諸如此類的

git之https或http方式設置記住用戶名密碼的方法

高速 使用 目錄 project 遠程倉庫 用戶名 每次 cache 極速 https方式每次都要輸入密碼,按照如下設置即可輸入一次就不用再手輸入密碼的困擾而且又享受https帶來的極速 設置記住密碼(默認15分鐘): git config --global crede

記住用戶名密碼

span equals 註意 string ram BE 密碼 param response 後臺: 登陸成功之後將用戶名密碼放入到cookie中 // 放到cookie中 String flag = request.getParameter

關於TortoiseGit push文件的時候不能記住用戶名密碼的問題

密碼 src git image onf helper nbsp 不能 文件夾 1、在項目文件夾下右鍵 -> TortoiseGit ->Settings 2、點擊Edit local .git/config 3、復制下面的代碼到打開的文件然後保存,下

網站註冊登入大概步驟(網站是怎樣通過cookie記住使用者的)

註冊: 將使用者填寫的賬號和密碼儲存在資料庫中(其中包括去重操作和密碼加密操作) 登入: 將使用者填寫的賬號和密碼與資料庫進行比對,如果資料庫中存在同樣的賬號和密碼,那麼在響應頭中設定Set-Cookie值,標誌該使用者是通過登入步驟進入首頁的 這樣每次使用者訪問同源網址時請求頭中都

google瀏覽器中 檢視記住的賬號密碼

  對於一個有“健忘症”的人來說,密碼形同虛設。。設定了就忘記,每次登陸都要重新設定密碼。。。       然後,無意中發現,谷歌瀏覽器點過一次記住密碼後,竟然可以明文檢視賬號和密碼!! 步驟: 1、開啟谷歌瀏覽器,在右上角的選單項中,選擇設定選項   2

簡述如何實現LocalStorage記住用戶密碼功能

window inb coo reload 展會 本地 精通 debugger 讀取   文章轉載於:http://www.codingke.com/article/4067   近期有不少的小夥伴通過扣丁學堂官網咨詢LocalStorage記住用戶和密碼功能的問題,本篇文

通過一句話記住大端序小端序的區別

在軟體開發過程中,軟體開發人員都知道大端序和小端序的概念,但是在真正使用的時候,傻傻分不清兩種到底是怎麼儲存。 首先還是先看下基本概念: 1、大端模式:高位元組儲存在記憶體的低地址 2、小端模式:高位元組儲存在記憶體的高地址 舉例: var = 0x11223344,對於這個變數

樹莓派 | 修改樹莓派3熱點的名稱密碼

開篇 在網上找了很久也沒找到怎麼修改熱點的名稱和密碼有關的資料,恰好自己發現了hostapd,此篇獻給像我這樣的小白。 教程 前提是使用的Yahboom_raspberrypi_8G_Router.img這個映象,一個自帶熱點的映象。 一、設定樹莓派3熱點的名稱和密

Python之——獲取電腦連線過的所有wifi名稱密碼

不多說,上程式碼: # -*- coding: UTF-8 -*- import os import sys reload(sys) sys.setdefaultencoding('utf-8') # 定義一個函式checkWIFI,獲取電腦連線過的所有wifi名

Android預設記住登陸使用者名稱密碼

每個Android開發者都會遇到一個問題就是在App的登陸介面會有記住密碼和記住使用者名稱的複選框按鈕,是怎麼實現的呢?下面進行展示一下操作程式碼!我們以最簡單的自動預設記住使用者名稱為例子,使用者選擇複選框自行後期新增就好了!我們先介紹一下SharedPreferences

在專案中記住Github使用者名稱密碼的方法

Github克隆下來的專案,如果想push的時候無需輸入使用者名稱和密碼,可以用以下格式 https://username:[email protected]/skykingf/name.git 要點: 1.使用者名稱不要用Email,否則@符號會干擾,導致認

windows下利用python 2.7獲取電腦上所有的wifi名稱密碼

# -*- coding: UTF-8 -*- import os import sys reload(sys) sys.setdefaultencoding('utf-8') # 定義一個函式checkWIFI,獲取電腦連線過的所有wifi名稱和密碼,結果以列表形式返回

Win10系統修改主機名、用戶名稱密碼、以及C盤中的用戶文件夾名

.cn nis windows10 jpg 新建 修改主機名 寫在前面 image 用戶 寫在前面 近期重新安裝了Ubuntu16.04系統,同時也修改了Windows10系統的用戶名、密碼,還有C盤用戶文件夾名稱。對於Linux和windows系統來說,修改名稱基

MyEclipse SVN外掛 去掉或者修改以前記住的使用者名稱密碼方法

刪除掉C:\Documents and Settings\hao\Application Data\Subversion\auth\svn.simple資料夾下的檔案即可. 再次訪問時,會彈出要求輸入使用者名稱和密碼. 以上的路徑名僅供參考,hao是我的一個使用者名稱,Ap

三張表通過使用者名稱查角色名稱許可權

select u.UserID, LoginName,LoginPassword,RoleName   from [CF_User] u  join [CF_UserRole] ur      on u.UserID=ur.UserID join [CF_Role] r

獲取cookie中的使用者名稱密碼,並顯示

jsp頁面程式碼,獲取name為"name","password"的cookie,並把其值賦給變數 <% String name=""; String psw=""; String checked=""; Cookie[] cookies=reques