用户登录账号、密码保存(懒人必备)

一个程序员的价值体现不是他会写什么,而是他的思维,无论什么任务,只要你能理清思路,明白自己要做什么,现在在做什么,这样才会避免走很多错路。

需求:保存用户输入的账号、密码

思路:
1.账号、密码保存方式———Cookie(客户端)
2.登录页面增加按钮,用户可以自主选择是否将自己的用户名、密码保存

实际开发步骤:(本人习惯先将jsp页面整理好,再添加相应功能,完善代码)

第一步:写login.jsp

HTML部分
这里写代码片
<tr>
<td>
<input id="rememberMe" name="rememberMe" type="checkbox" value="" /> 记住当前账号<br/>
</td>
</tr>
这里写代码片

JS部分

这里写代码片
$("#rememberMe").change(function(){
if($("#rememberMe").prop("checked")){
$("#rememberMe").attr("value","y");
}else{
$("#rememberMe").attr("value","");
}
});
这里写代码片

这里写图片描述

第二步:Controller 登录代码中增加判断是否已存在用户信息,没有则增加Cookie

这里写代码片

扫描二维码关注公众号,回复: 10548365 查看本文章
这里写代码片
                 Cookie[] cookies=request.getCookies();
                    //判断是否需要处理Cookie
                 boolean flag = true;
                if(cookies.length>=0 && rememberMe.equals("y")){
                     for(int i=0;i<cookies.length;i++){
                         if(cookies[i].getValue().equals(account)){
                             flag = false;
                         }
                     }
                }
                if(flag==true){
                    addCookie(rememberMe,account,password,request,response);
                }

增肌addCookie方法

这里写代码片
    /**
     * 进行Cookie验证处理上次登录的用户名以及密码
     * @param account
     * @param password
     * @param request
     * @param response
     * @throws UnsupportedEncodingException 
     */
    public void addCookie(String rememberMe,String account,String pwd,HttpServletRequest request,HttpServletResponse response) throws UnsupportedEncodingException{
        if(!StringUtil.isEmptyString(account)){
            //创建Cookie
            Cookie nameCookie=new Cookie("username",URLEncoder.encode(account,"utf-8"));
            Cookie pwdCookie=new Cookie("pwd",URLEncoder.encode(pwd,"utf-8"));
            //设置Cookie的父路径
            nameCookie.setPath(request.getContextPath()+"/");
            pwdCookie.setPath(request.getContextPath()+"/");
            //保存Cookie
                nameCookie.setMaxAge(7*24*60*60);
                pwdCookie.setMaxAge(7*24*60*60);

            //加入Cookie到响应头
            response.addCookie(nameCookie);
            response.addCookie(pwdCookie);
        }
    }

这样做就基本完成

增加后效果展示:
这里写图片描述

新手勿喷,大神赏脸,如发现什么问题,欢迎指点一二!小弟在此多谢

发布了33 篇原创文章 · 获赞 3 · 访问量 5886

猜你喜欢

转载自blog.csdn.net/WandaZw/article/details/51475619