把用戶名和密碼保存到 cookie裏,…

因爲我們用的是spring security框架,所以我誤認爲是spring security remember me 功能。
就在配置文件裏簡單配置了一下,就實現了這個功能。
測試的時候才發現,不是要這種效果。是真的要字面上的意思。
也就是說。記住了密碼後。在下次登錄的時候是這樣的效果:
把用戶名和密碼保存到 <wbr>cookie裏,下次登錄的時候,自動填到輸入框裏

於是我就在網上搜索
剛開始一種是全用js實現的
  1. "text/javascript">  
  2.     $(document).ready(function() {  
  3.             var name = getCookie("username");  
  4.             //$("#username")[0].value=name;   
  5.             $("#username").val(name);  
  6.   
  7.               
  8.             $("#sub").click(function() {  
  9.                 if ($("#remember").attr("checked") == true) {  
  10.                     //獲得用戶名   
  11.                     var username = $("#username").val();  
  12.                     //設置cookie  
  13.                     setCookie("username", username);  
  14.                 } else {  
  15.                     //刪除cookie  
  16.                     delCookie("username")   
  17.                 }  
  18.             })  
  19.             function setCookie(name, value) {  
  20.                 var Days = 60; //cookie 將被保存兩個月   
  21.                 var exp = new Date(); //獲得當前時間   
  22.                 exp.setTime(exp.getTime() + Days * 24 * 60 * 60 * 1000); //換成毫秒  
  23.                 document.cookie = name + "=" + escape(value) + ";expires=" + exp.toGMTString();  
  24.             }  
  25.             function getCookie(name) {  
  26.                 //取出cookie   
  27.                 var strCookie = document.cookie;  
  28.                 //cookie的保存格式是 分號加空格 "; "  
  29.                 var arrCookie = strCookie.split("; ");  
  30.                 for ( var i = 0; i < arrCookie.length; i++) {  
  31.                     var arr = arrCookie[i].split("=");  
  32.                     if (arr[0] == "username") {  
  33.                         return arr[1];  
  34.                     }  
  35.                 }  
  36.                 return "";  
  37.             }  
  38.             function delCookie(name) {  
  39.                 var exp = new Date(); //當前時間   
  40.                 exp.setTime(exp.getTime() - 1); //刪除cookie 只需將cookie設置爲過去的時間    
  41.                 var cval = getCookie(name);  
  42.                 if (cval != null)  
  43.                     document.cookie = name + "=" + cval + ";expires="+ exp.toGMTString();  
  44.             }  
  45.         })  
  46.  
可是這個出現了一個問題。確實可以保存,和取出。我彈出來了,值沒有任何問題。
當我需要在窗體加載的時候把上次存到cookie的值綁定到文本框是,綁定不了。用的是:
document.getElementByIdx_x("username")value=xxx;
不知道是不是框架問題,這樣中是綁定不了。就算我寫死的也沒用。
最後只能換種方法了。
於是又找了另外一種辦法:
(先在控制層保存cookie值)
//記住密碼操作
            Cookie[] cookies=request.getCookies();
            if(cookies!=null){
                for(int i=0;i
                    if(cookies[i].getName().equals("isTrue")){ 
                        String name=cookies[i].getValue();
                        if(("true").equals(name)){
                            Cookie user = new Cookie("user",userDetails.getUsername()+"-"+userDetails.getPassword());
                            response.addCookie(user);
                        }else{
                            Cookie user = new Cookie("user","null");//這裏試了很多種方式,我的就只有這種在取值的時候不報錯。
                            response.addCookie(user);
                        }
                    }
                }
     
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章