第一次登录时如果勾选了“记住用记名”选项,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
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。