微信搜索【程序员囧辉】,关注这个坚持分享技术干货的程序员。

通过Cookie实现"记住我"的功能

1.登陆页面如下:

每个字段对应的属性name如下表:

用户帐号 name
登陆密码 password
验证码 checkNum
记住我 rememberMe

2.Action中的处理如下:

在用户第一次登陆后,进行Cookie进行处理

登陆处理

/**登陆*/
public String login() throws Exception{//处理验证码:判断验证码输入的是否正确boolean flag=VerificationCodeUtil.isCheckNum(request);if(!flag){this.addFieldError("checkNum", "验证码有误");return "loginUI";}User user=userService.findByLoginNameAndPassword(model.getName(),model.getPassword());if(user==null){addFieldError("login", "用户名或密码不正确");return "loginUI";}else{ActionContext.getContext().getSession().put("user", user);//处理CookieaddCookie(model.getName(),model.getPassword(),response,request);return "toIndex";}
}

Cookie处理:

/**Cookie的实现 **/
private void addCookie(String name, String password,HttpServletResponse response, HttpServletRequest request) throws UnsupportedEncodingException {if(StringUtils.isNotBlank(name)&&StringUtils.isNotBlank(password)){//创建CookieCookie nameCookie=new Cookie("name",URLEncoder.encode(name,"utf-8"));Cookie pswCookie=new Cookie("psw",password);//设置Cookie的父路径nameCookie.setPath(request.getContextPath()+"/");pswCookie.setPath(request.getContextPath()+"/");//获取是否保存CookieString rememberMe=request.getParameter("rememberMe");if(rememberMe==null){//不保存CookienameCookie.setMaxAge(0);pswCookie.setMaxAge(0);}else{//保存Cookie的时间长度,单位为秒nameCookie.setMaxAge(7*24*60*60);pswCookie.setMaxAge(7*24*60*60);}//加入Cookie到响应头response.addCookie(nameCookie);response.addCookie(pswCookie);}
}

3.JSP页面的处理如下:

在登陆的JSP页面中加入下面代码,以获得用户名和密码并自动填写:

<%String name="";String psw="";String checked="";Cookie[] cookies=request.getCookies();if(cookies!=null&&cookies.length>0){ //遍历Cookiefor(int i=0;i<cookies.length;i++){Cookie cookie=cookies[i];//此处类似与Map有name和value两个字段,name相等才赋值,并处理编码问题 if("name".equals(cookie.getName())){name=URLDecoder.decode(cookie.getValue(),"utf-8");//将"记住我"设置为勾选 checked="checked";}if("psw".equals(cookie.getName())){psw=cookie.getValue();}}}%>

最后对用户名,密码,记住我字段添加value即可:

<TR><TD class="td">用户帐号:</TD><TD class="td"><input name="name" type="text" value="<%=name %>" id="name"/></TD>
</TR>
<TR><TD class="td">登录密码:</TD><TD class="td"><input name="password" type="password" value="<%=psw %>" id="password"></TD>
</TR>
<TR><TD class="td">记住我:</TD><TD class="td"><input name="rememberMe" type="checkbox" id="rememberMe" class="checkbox" <%=checked %>></TD>
</TR>

4.可能出现的问题

如果出现设置了却没有自动填写用户名和密码,则可能是地址的问题:

解决办法:

1.进入Internet选项,点击浏览历史记录一栏的设置

2.进入浏览记录设置后,点击查看文件

3.在弹出的文件夹里找到Cookie文件,名字为你的项目名+“/”,格式如下图,这个文件一般在文件夹的最后面,将此文件复制到桌面,注:此文件是无法直接在该文件夹里打开的。

4.如下图,第三行为保存项目工程的路径,此时在Action里的Cookie处理中,根据该地址设置对应的Cookie父路径即可,上文已经设置。

登陆页面实现保存帐号密码功能相关推荐

  1. 记住用户名密码html,jQuery实现的记住帐号密码功能完整示例

    本文实例讲述了jQuery实现的记住帐号密码功能.分享给大家供大家参考,具体如下: 记住密码是每个有帐号登录的网站必备的,现在说一下通过COOKIE实现的记住密码功能. COOKIE //读取cook ...

  2. HexorBase 登陆、执行语句、数据库帐号密码破解

    HexorBase Tool:整合了目前几大主流的数据库,包括登陆,执行语句,数据库帐号密码破解等功能. 安装HexorBase Tool,安装文件:hexorbase_1.0_all.deb 下载地 ...

  3. 登陆163邮箱 验证邮箱帐号密码是否正确

    有些时候我们只需要验证邮箱的帐号密码是否正确.而不需要发邮件.用下面的代码吧. 要用到的jar包是jmail.jar  方法1 package com.cn.mail.test; import jav ...

  4. dede修改mysql用户名密码_老李教你快速学会织梦dedecm后台修改帐号密码教程

    原创 老李教你快速学会织梦dedecms后台管理员密码重置和修改教程. 织梦dedecms建站系统在目前还是算很流行的门户网站建站系统,功能强大易于操作,今天老李就发生了一件很丢脸的事,就是忘记了后台 ...

  5. 教你如何保护MSN和Hotmail的帐号密码安全

    教大家几个如何更好地保护MSN帐号的方法,预防帐号密码被盗: 技巧1:绑定手机号码,增强帐号安全. 技巧2:增加密码强度(复杂性),养成定期更换密码习惯. 技巧3:不让PC自动"保存密码&q ...

  6. Wireshark分析实战:某达速递登录帐号密码提取

    "使用某达速递的官网登陆及APP登录,来学习Wireshark的使用." 在如今这个HTTPS深入人心的情况下,作为一个也不算很小的快递,某达速递,不但全站HTTP,而且登录帐号密 ...

  7. 从Discuz迁移帐号密码到NodeBB

    从Discuz迁移帐号密码到NodeBB 最近论坛要从Discuz改版到NodeBB中,由于原有dz框架使用了较长时间,积累了一定的用户数,为了对用户进行无感知的迁移,首先需要将账户登录的问题解决. ...

  8. 3秒种找出电脑所有记录的帐号密码

    3秒种找出电脑所有记录的帐号密码 3秒种找出电脑所有记录的帐号密码,这样的软件有点恐怖啊,在自己机上试了下,晕,全出来了 ~~ 这是一个查看密码的软件,可以自动搜索IE的自动完成密码.OE密码.Out ...

  9. WCF加密操作(包括证书和证书+帐号密码)

    WCF作为.net三大组件之一,伟大之处不用多说,但是其加密配置对于我这样的萌新来说还是颇有难度,因此将几天来的研究成果共享出来,与各位共勉~ 首先声明我的开发环境,Win10创意者更新 + Visu ...

最新文章

  1. 第01课:深度学习概述
  2. php视频生成指定帧图片,python3.5 cv2 获取视频特定帧生成jpg图片
  3. linux内核5.3支持cpu,Linux 5.3版内核重磅发布:支持中国兆芯x86 CPU
  4. 在有限多的不大于100的正整数中,找出尽量多个相加起来值介于98~102之间的组合...
  5. 软件开发工具--自考2018年10月程序填空
  6. 程序员中年危机的破解之道
  7. docker深入2-API示例
  8. pandas输出到excel_精通Pandas,从零基础到中级运用,看这一篇就够了
  9. java毕业设计学生学习评价系统Mybatis+系统+数据库+调试部署
  10. 2020级训练赛10.23
  11. 金融业--贝塔系数、夏普比率、简森指数、特雷诺指数的含义和应用
  12. java读取服务器上文件,java 读取linux服务器上文件
  13. PHPStorm的资料网址
  14. CTeX 中文 beamer 模板
  15. 2020-12-09 blastp参数学习
  16. clojure 开发工具_Clojure Web开发–最新技术–第2部分
  17. Python模拟屏幕点击自动完成词达人任务(附源码)
  18. MySQL数据表插入数据及增加语句
  19. php 判断是否是机器人,PHP_php实现判断访问来路是否为搜索引擎机器人的方法,本文实例讲述了php实现判断访 - phpStudy...
  20. 怎样提高深度睡眠时间,五个助眠小妙招帮助你快速入睡

热门文章

  1. 前端页面获取访问者的IP地址、经纬度和地理位置
  2. python定义栈_Python开发中栈的定义及用法详解
  3. 关于shm_open和shm_unlink的使用问题
  4. 微信小程序wx:for中的item什么意思以及wx:for-item的意思
  5. 服务器系统盘 转速,服务器磁盘转速怎么看
  6. Eclipse:Eclipse插件开发全套教程
  7. cesium-添加地下模型
  8. 一个关于css中margin-right没有效果的问题
  9. 解决vscode头文件<bits/stdc++.h>报错问题
  10. 音乐MP3文件剪切 与 两个MP3文件合并