您的位置:首页 > 其它

把用户名和密码保存到 cookie里,…

2017-08-31 13:07 381 查看
因为我们用的是spring security框架,所以我误认为是spring security remember me
功能。

就在配置文件里简单配置了一下,就实现了这个功能。

测试的时候才发现,不是要这种效果。是真的要字面上的意思。

也就是说。记住了密码后。在下次登录的时候是这样的效果:




于是我就在网上搜索

刚开始一种是全用js实现的
"text/javascript">  

    $(document).ready(function() {  

            var name = getCookie("username");  

            //$("#username")[0].value=name;   

            $("#username").val(name);  

  

              

            $("#sub").click(function() {  

                if ($("#remember").attr("checked") == true) {  

                    //获得用户名   

                    var username = $("#username").val();  

                    //设置cookie  

                    setCookie("username", username);  

                } else {  

                    //删除cookie  

                    delCookie("username")   

                }  

            })  

            function setCookie(name, value) {  

                var Days = 60; //cookie 将被保存两个月   

                var exp = new Date(); //获得当前时间   

                exp.setTime(exp.getTime() + Days * 24 * 60 * 60 * 1000); //换成毫秒  

                document.cookie = name + "=" + escape(value) + ";expires=" + exp.toGMTString();  

            }  

            function getCookie(name) {  

                //取出cookie   

                var strCookie = document.cookie;  

                //cookie的保存格式是 分号加空格 "; "  

                var arrCookie = strCookie.split("; ");  

                for ( var i = 0; i < arrCookie.length; i++) {  

                    var arr = arrCookie[i].split("=");  

                    if (arr[0] == "username") {  

                        return arr[1];  

                    }  

                }  

                return "";  

            }  

            function delCookie(name) {  

                var exp = new Date(); //当前时间   

                exp.setTime(exp.getTime() - 1); //删除cookie 只需将cookie设置为过去的时间    

                var cval = getCookie(name);  

                if (cval != null)  

                    document.cookie = name + "=" + cval + ";expires="+ exp.toGMTString();  

            }  

        })  

 

可是这个出现了一个问题。确实可以保存,和取出。我弹出来了,值没有任何问题。

当我需要在窗体加载的时候把上次存到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);

       
   
   
   
    }

       
   
   
    }

       
   
    }

     
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: