记住用户名-cookie练习

第一次登录时如果勾选了“记住用记名”选项,cookie里存储用户名

第2-n次登录时 首选判断cookie里有没有用户信息,如果用,从cookie里取得用户名

我们计划向cookie里放置以下信息

用户名:username

cookie的常用操作

新建: Cookie C=new Cookie(key,value)

setMaxAge(0) 不记录cookie

setMaxAge(-1) session级别的cookie,随session失效而失效

setMaxAge(72460*60) 单位为秒

正整数和负整数的区别:

负整数时存在浏览器里

正整数时存在本地磁盘里

setPath("/") 访问路径设置

登录页改造

用户名:
密码:
记住用户名:

LoginServlet关键代码

protectedvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throws ServletException,IOException{......//是否勾选了记住用户名功能String[]flags=request.getParameterValues("flag");Stringflag="0";if(flags!=null&&!flags.equals("")){flag="1";}......//是否用户名错误--->根据用户名查询tab_user表中是否有该条记录IUserServiceservice=newUserServiceImpl();ListuserList=service.getUserByName(username);if(userList!=null&&userList.size()>0){//是否密码错误  ---根据用户名和密码两项进行查询TabUserdbuser=service.getUserByNameAndPwd(username,password);if(dbuser!=null){//如果查询到用户了。进入登录后的处理//将用户信息存放到session......if("1".equals(flag)){//记住密码//需要向cookie里存储数据//step1 存储用户名Cookiec=newCookie("username",username);c.setMaxAge(1*24*60*60);c.setPath("/");//将cookie放到响应里response.addCookie(c);}else{//不记住密码,就清除cookie//删除(思路就是替换原来的cookie,并设置它的生存时间为0):Cookiec=newCookie("username",username);c.setMaxAge(0);c.setPath("/");//将cookie放到响应里response.addCookie(c);}......}

登录页默认密码

<%//自动登录判断String username="";//读取cookieCookie[] cookies=request.getCookies();if(cookies!=null){    //循环读取cookie    for(Cookie c:cookies){        String name=c.getName();        if(name.equals("username")){            username=c.getValue();            request.setAttribute("username",  username);        }    }}%>用户名:
密码:
记住用户名:

在Chrome设置中查看&删除Cookie

在Chrome地址栏中输入:chrome://settings/content/cookies,打开Cookie设置,可以查看&删除Cookie。

image.png

image.png

作者:wqjcarnation

链接:https://www.jianshu.com/p/c98e40281ee7

来源:

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

你可能感兴趣的:(记住用户名-cookie练习)