记住用户名-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("/") 访问路径设置

登录页改造

<formaction="loginServlet"method="post">用户名:<inputtype="text"name="username"/><br>密码:<inputtype="password"name="password"/><br>记住用户名:<inputtype="checkbox"name="flag"value="1"/><br><inputtype="submit"value="登录"/><inputtype="reset"value="重置"/></form>

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();List<TabUser>userList=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);        }    }}%><formaction="loginServlet"method="post">用户名:<inputtype="text"name="username"value="${username }"><br>密码:<inputtype="password"name="password"/><br>记住用户名:<inputtype="checkbox"name="flag"value="1"/><br><inputtype="submit"value="登录"/><inputtype="reset"value="重置"/></form>

在Chrome设置中查看&删除Cookie

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

image.png

image.png

作者:wqjcarnation

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

来源:简书

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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。