ssm实现记住账号密码(cookie)
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)相关推荐
- Jsp使用Cookie完成记住账号密码的功能
网站中对于记住账号密码,方便下次登录的使用非常普遍,那么它是怎么实现的呢? 首先他的流程是,设计一个复选框,当选中复选框时,就会传值到处理页面,复选框的用途就是判断用户是否愿意记住账号密码. 我们通过 ...
- C# ASP.NET MVC:使用Cookie记住账号密码
MVC记住账号密码 使用cookie操作 前端: 1 <div> 2 用户名:<input type="text" id="UserName" ...
- Vue实现登录记住账号密码功能的思路与过程
文章来源: 学习通http://www.bdgxy.com/ 目录 实现思路 这里有三种方法来存储账号密码: 功能界面 记住账号密码功能的具体实现 密码加密 localStorage cookies ...
- 账号密码代码php,JS代码怎样实现记住账号密码
这次给大家带来JS代码怎样实现记住账号密码,JS代码实现记住账号密码的注意事项有哪些,下面就是实战案例,一起来看一下. 很多登录功能上都有个"记住密码"的功能,其实无非就是对coo ...
- android中注册的账号密码储存在,Android中使用SharedPreferences完成记住账号密码的功能...
效果图: 记住密码后,再次登录就会出现账号密码,否则没有. 分析: SharedPreferences可将数据存储到本地的配置文件中 SharedPreferences会记录CheckBox的状态,如 ...
- 利用SharedPreferences完成记住账号密码的功能
利用SharedPreferences完成记住账号密码的功能 效果图: 记住密码后,再次登录就会出现账号密码,否则没有. 分析: SharedPreferences可将数据存储到本地的配置文件中 Sh ...
- uni-app 实现记住账号密码功能
1.示例: 2.代码: 只看核心代码块 其他不用管 <template><view class="page"><view class="to ...
- QT 记住账号密码登录
弄了个简单的记住账号密码登录功能,适合初学者学习,直接上代码,代码有注释. 喂饭到嘴边了,看你会不会吃啦 开发环境是VS2015 1.由于没有写注册功能,所以账号和密码我提前写在一个ini文件,这个文 ...
- android 记住多个账号,Android实现记住账号密码功能
本文实例为大家分享了Android实现记住账号密码的具体代码,供大家参考,具体内容如下 布局 一个复选框 android:id="@+id/checkbox" android:ra ...
最新文章
- 如何在AngularJS中使用ng-repeat迭代键和值?
- 【OpenGL】十五、OpenGL 绘制三角形 ( 绘制 GL_TRIANGLE_FAN 三角形扇 )
- C#强化系列文章五:动态代码的使用(反射和动态生成类)
- linux系统参加网络会议,在Deepin Linux系统下运行腾讯会议的方略
- 网友提问:当我要使用一个陌生的标准BAPI,我可以去哪里找到比较详尽的文档指导一类的资料
- 盘点阿里程序员常用的 15 款开发者工具
- Labview 模型导入Veristand问题
- Hanoi Tower 模拟
- bzoj 3517: 翻硬币
- 介绍两个Ubuntu上的桌面小工具
- PHP比较两个时间戳相差天时分秒
- SpringBoot 生产中 16 条最佳实践
- 初学者Apache Solr教程
- html点击按钮状态改变,html点击按钮改变文字怎么实现
- 《赖氏经典英语语法》第四集
- 【有感】成为一个不惑、不忧、不惧的人
- 情人节单身怎么过? 教你一招,让女神主动约你
- Java核心编程随笔
- 11.4 使用Flask-PageDown支持富文本文章
- Manjaro安装pscs6菜单栏无法显示中文,提示‘$$/ADMDialog/iFontProblemWarning=The Adobe UI font could not be loaded.’