把用户名和密码保存到 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);
                        }
                    }
                }
     

你可能感兴趣的:(项目笔记)