cookie实现记住账号密码

  • 1.需要实现的功能?
  • 2.实现思路
  • 3.后端代码

1.需要实现的功能?

在我们登陆的时候,页面有一个记住密码的单选框,如果用户勾选了记住密码,那么下次登陆的时候,就无需输入密码是直接登陆的。

看,大概就是这样界面。

2.实现思路

1.使用cookie技术
在使用他之前,我们先来看下,什么是cookie?
cookie就是保存在客户端的值,也就是浏览器,保存至客户端电脑的本地,也就是说,我们可以把账号和密码放在cookie中,也就是在用户提交登陆的表单中,通过获取单选框中的值,判断用户是否需要记住密码。

2.后端通过接收单选框的值,判断是否需要将账号密码cookie中。

3.如果没有勾选,里面的值为null,不做任何操作,并且去判断cookie’中是否已经有,有的话将cookie进行删除

4.前端通过EL表达式取到cookie中的值,赋值给输入框

3.后端代码

    // 登陆 @RequestParam(required=false) 表示此参数可用没有 也可以有@PostMapping(value = "login.mvc")public ModelAndView login(User user, HttpSession session, String code,@RequestParam(required=false)String rememberMe,HttpServletRequest request,HttpServletResponse response){ModelAndView view = new ModelAndView();// code 获取前端传递过来的验证码System.out.println(code);//获取客户端生成的验证码String codeGoogle =(String)session.getAttribute(KAPTCHA_SESSION_KEY);//删除客户端验证码session.removeAttribute(KAPTCHA_SESSION_KEY);User  sessionUser = userService.selectUserByUsernameAndPassword(user.getName(), user.getPassword());// 验证码和用户名密码都正确则登陆成功if (sessionUser!=null&&codeGoogle.equals(code)){session.setAttribute("user",sessionUser);// 判断用户是否勾选记住密码单选框 如果是 调用 isMemory方法将用户名和密码保存到客户端System.out.println("rememberMe="+rememberMe);try {isMemory(rememberMe!=null,user,request,response);} catch (UnsupportedEncodingException e) {System.out.println("设置字符集出错=>request.setCharacterEncoding()");e.printStackTrace();}view.setViewName("redirect:/index.jsp");}else {view.setViewName("redirect:/page/login-1.jsp");}return view;}/*** 验证用户是否勾选记住按钮单选框* @param rememberMe 单选框的值* @param user 当前登陆用户对象* @param request 请求对象* @param response 响应对象-* @throws UnsupportedEncodingException*/private void isMemory(boolean rememberMe, User user, HttpServletRequest request, HttpServletResponse response) throws UnsupportedEncodingException {request.setCharacterEncoding("utf-8");response.setCharacterEncoding("utf-8");if(rememberMe){Cookie username=new Cookie("username", user.getName());username.setPath("/");Cookie password=new Cookie("password",user.getPassword());password.setPath("/");//设置账号和密码最长保存时间 单位是秒 1天=60*60*24 *需要保存的填数 保存7填为=(60*60*24)*7username.setMaxAge((60*60*24)*7);password.setMaxAge((60*60*24)*7);// 将cookie返回给客户端response.addCookie(username);response.addCookie(password);}else{// 遍历cookie中的username和password 如果用户没有选择记住密码 则删除客户端的密码Cookie[] cookies= request.getCookies();if (cookies!=null){for (int i = 0; i < cookies.length; i++) {if (cookies[i].getName().equals("username")||cookies[i].equals("password")){System.out.println("删除掉的cookie----》"+cookies[i].getName());cookies[i].setMaxAge(0);cookies[i].setPath("/");response.addCookie(cookies[i]);}}}}}

前端通过EL表达式进行取值:${cookie.password.value}

    <div class="layui-form-item"><label class="layui-icon layui-icon-username" for="name"></label><input type="text" name="name" lay-verify="required|account" placeholder="用户名或者邮箱" autocomplete="off" class="layui-input" value="${cookie.username.value}"></div><div class="layui-form-item"><label class="layui-icon layui-icon-password" for="password"></label><input type="password" name="password" lay-verify="required|password" placeholder="密码" autocomplete="off" class="layui-input" value="${cookie.password.value}"></div>

问题思考与扩展:
1.可以将账户和密码进行简单的加密在放到cookie中
2.客户禁用了cookie不能用session怎么办? 可以是URL重写的方式

ssm实现记住账号密码(cookie)相关推荐

  1. Jsp使用Cookie完成记住账号密码的功能

    网站中对于记住账号密码,方便下次登录的使用非常普遍,那么它是怎么实现的呢? 首先他的流程是,设计一个复选框,当选中复选框时,就会传值到处理页面,复选框的用途就是判断用户是否愿意记住账号密码. 我们通过 ...

  2. C# ASP.NET MVC:使用Cookie记住账号密码

    MVC记住账号密码 使用cookie操作 前端: 1 <div> 2 用户名:<input type="text" id="UserName" ...

  3. Vue实现登录记住账号密码功能的思路与过程

    文章来源: 学习通http://www.bdgxy.com/ 目录 实现思路 这里有三种方法来存储账号密码: 功能界面 记住账号密码功能的具体实现 密码加密 localStorage cookies ...

  4. 账号密码代码php,JS代码怎样实现记住账号密码

    这次给大家带来JS代码怎样实现记住账号密码,JS代码实现记住账号密码的注意事项有哪些,下面就是实战案例,一起来看一下. 很多登录功能上都有个"记住密码"的功能,其实无非就是对coo ...

  5. android中注册的账号密码储存在,Android中使用SharedPreferences完成记住账号密码的功能...

    效果图: 记住密码后,再次登录就会出现账号密码,否则没有. 分析: SharedPreferences可将数据存储到本地的配置文件中 SharedPreferences会记录CheckBox的状态,如 ...

  6. 利用SharedPreferences完成记住账号密码的功能

    利用SharedPreferences完成记住账号密码的功能 效果图: 记住密码后,再次登录就会出现账号密码,否则没有. 分析: SharedPreferences可将数据存储到本地的配置文件中 Sh ...

  7. uni-app 实现记住账号密码功能

    1.示例: 2.代码: 只看核心代码块 其他不用管 <template><view class="page"><view class="to ...

  8. QT 记住账号密码登录

    弄了个简单的记住账号密码登录功能,适合初学者学习,直接上代码,代码有注释. 喂饭到嘴边了,看你会不会吃啦 开发环境是VS2015 1.由于没有写注册功能,所以账号和密码我提前写在一个ini文件,这个文 ...

  9. android 记住多个账号,Android实现记住账号密码功能

    本文实例为大家分享了Android实现记住账号密码的具体代码,供大家参考,具体内容如下 布局 一个复选框 android:id="@+id/checkbox" android:ra ...

最新文章

  1. 如何在AngularJS中使用ng-repeat迭代键和值?
  2. 【OpenGL】十五、OpenGL 绘制三角形 ( 绘制 GL_TRIANGLE_FAN 三角形扇 )
  3. C#强化系列文章五:动态代码的使用(反射和动态生成类)
  4. linux系统参加网络会议,在Deepin Linux系统下运行腾讯会议的方略
  5. 网友提问:当我要使用一个陌生的标准BAPI,我可以去哪里找到比较详尽的文档指导一类的资料
  6. 盘点阿里程序员常用的 15 款开发者工具
  7. Labview 模型导入Veristand问题
  8. Hanoi Tower 模拟
  9. bzoj 3517: 翻硬币
  10. 介绍两个Ubuntu上的桌面小工具
  11. PHP比较两个时间戳相差天时分秒
  12. SpringBoot 生产中 16 条最佳实践
  13. 初学者Apache Solr教程
  14. html点击按钮状态改变,html点击按钮改变文字怎么实现
  15. 《赖氏经典英语语法》第四集
  16. 【有感】成为一个不惑、不忧、不惧的人
  17. 情人节单身怎么过? 教你一招,让女神主动约你
  18. Java核心编程随笔
  19. 11.4 使用Flask-PageDown支持富文本文章
  20. Manjaro安装pscs6菜单栏无法显示中文,提示‘$$/ADMDialog/iFontProblemWarning=The Adobe UI font could not be loaded.’

热门文章

  1. 有关数据的“那些事儿”,百度云发声啦!
  2. 前端VUE图片预加载
  3. 最新WIN平台服务器安全解决方案【青云原创】
  4. 案例分析:FIFA2018球员数据分析
  5. yuv数据(nv12和nv21)和RGB数据之间转换的c++代码
  6. pythonturtle写字_python用turtle写字
  7. 单片机中C语言延时函数
  8. 2021最新python爬取12306列车信息自动抢票并自动识别验证码
  9. 关于弱电间和机房的综合布线
  10. 2022年终总结-两年Androider的成长之路