网站中对于记住账号密码,方便下次登录的使用非常普遍,那么它是怎么实现的呢?

首先他的流程是,设计一个复选框,当选中复选框时,就会传值到处理页面,复选框的用途就是判断用户是否愿意记住账号密码。

我们通过一个小例子来掌握他的实现步骤,在开始之前首先要了解一下实现这一功能的关键:

Cookie,所有的实现所依赖的都是cookie,那么什么是Cookie呢?

简单来说:cookie就是一段文本,它存储在客户端(通常来说是浏览器)。你可以把cookie当作一个map,里边是键值对,每个键值对有 过期时间、域、路径、脚本可否访问等属

性;客户端请求时,默认会带上cookie信息,就在http请求报文的header中;服务器响应时,可以设置cookie信息,就在http响应报文的header中;

了解了Cookie,我们就可以实现记住账号密码的功能了

首先,我们写一个login.jsp,来接收用户的操作。

<body><%String username = "";String password = "";Cookie[] c = request.getCookies();if (c != null) {for (int i = 0; i < c.length; i++) {if ("username".equals(c[i].getName())) {username = c[i].getValue();} else if ("password".equals(c[i].getName())) {password = c[i].getValue();}}} else {username = " ";password = " ";}%><div id="qq"><form action="loginCheck.jsp" method="post"><table><tr><td><input type="text" name="username" value="<%=username%>" /></td></tr><tr><td><input type="password" name="password"value="<%=password%>" /></td></tr><tr><td>记住密码:<input type="checkbox" name="passcookies"value="jizhu" /></td><td><input type="submit" value="登录" /></td></tr></table></form></div>
</body>

这段代码实现的思路是,首先搜索浏览器的Cookie,判断是否存在名为username和password,

如果有,就传值到form表单,用value="<%=username%>"来使他显示在输入框;而当搜索不到这套Cookie时,输入框不显示内容,需要用户手动输入。

这时我们需要一个登录信息处理的jsp,这里名字是loginCheck.jsp

<body><%request.setCharacterEncoding("utf-8");LoginDaoImpl user = new LoginDaoImpl();String username = request.getParameter("username");String password = request.getParameter("password");String remember = request.getParameter("passcookies");if (!user.loginCheck(username, password)) {out.println("<script>alert('error');</script>");} else {if (remember != null) {Cookie c1 = new Cookie("username", username);Cookie c2 = new Cookie("password", password);c1.setMaxAge(1000);c2.setMaxAge(1000);//这里设置保存这条Cookie的时间response.addCookie(c1);//添加Cookieresponse.addCookie(c2);out.println("<script>alert('success and remember this username&password
');</script>");} else {out.println("<script>alert('success but not remember this username&password');</script>");}}%>
</body>

这里的实现思路是首先接收登录界面传过来的值,首先判断用户名密码是否存在,不存在程序就终止了,弹出error提示,如果存在再判断用户是否选择了记住密码,即复选框是否有传值过来。如果有,new一个Cookie对象,对Cookie进行保存,如果没有则正常登录。

主要介绍记住账号密码的功能,后台实现思路不做详细介绍,代码如下

public class LoginDaoImpl implements LoginDao {public boolean loginCheck(String username, String password) {boolean result = false;Connection conn = null;PreparedStatement state = null;ResultSet rs = null;try {conn = ConnHelper.getConn();String sql = "select username from userinfo where username=? and password=?";state = conn.prepareStatement(sql);state.setString(1, username);state.setString(2, password);rs = state.executeQuery();if (rs.next()) {result = true;}} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();} finally {try {rs.close();state.close();conn.close();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}return result;}}

这样,一个简单的使用Cookie记住账号密码的功能就实现了,同时可以扩展一下,比如,让用户自己选择记住账号密码的时长
表单中加上一个输入框:

<tr><td>记住密码时间:<input type="text" name="time" value="100" /></td>
</tr>
 <td>记住密码时间:<input type="text" name="time" value="100" /></td>
</tr>

登录处理用输入的时间代替原来设置的值:

<body><%request.setCharacterEncoding("utf-8");LoginDaoImpl user = new LoginDaoImpl();String username = request.getParameter("username");String password = request.getParameter("password");String remember = request.getParameter("passcookies");int time = Integer.parseInt(request.getParameter("time"));if (!user.loginCheck(username, password)) {out.println("<script>alert('error');</script>");} else {if (remember != null) {Cookie c1 = new Cookie("username", username);Cookie c2 = new Cookie("password", password);c1.setMaxAge(time);c2.setMaxAge(time);response.addCookie(c1);//添加Cookieresponse.addCookie(c2);out.println("<script>alert('success and remember this username&password 记住密码时长="+ time + "');</script>");} else {out.println("<script>alert('success but not remember this username&password');</script>");}}%>
</body>

使用Cookie可以完成很多事情,怎么用它,就要发挥大家想象啦!

安利一个,关注后端技术精选,号内回复“学习资料”,领取100套小程序源码+小程序开发视频和Java经典书籍电子版!

Jsp使用Cookie完成记住账号密码的功能相关推荐

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

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

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

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

  3. JS读取cookie(记住账号密码)

    很多登录功能上都有个"记住密码"的功能,其实无非就是对cookie的读取. 下面展示这个功能的代码,原作者已无法考究.... 测试方法:直接输入账号密码,提交后,刷新页面,再输入同 ...

  4. ssm实现记住账号密码(cookie)

    cookie实现记住账号密码 1.需要实现的功能? 2.实现思路 3.后端代码 1.需要实现的功能? 在我们登陆的时候,页面有一个记住密码的单选框,如果用户勾选了记住密码,那么下次登陆的时候,就无需输 ...

  5. QT 记住账号密码登录

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

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

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

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

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

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

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

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

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

最新文章

  1. 6条可以成为更好程序员的建议
  2. C#中使用代码动态改变配置文件信息
  3. java 常见数据类型
  4. 理解 Word2Vec 之 Skip-Gram 模型【全】
  5. C语言反转二叉树的递归和迭代解决方案(附完整源码)
  6. 进程与线程的区别?--多线程与线程池
  7. 说透Applet的数字签名之1——Applet及其运行
  8. python pandas series_Python数据分析-pandas之Series
  9. 为什么有的人开车舍不得开空调?车载空调耗油吗?
  10. 分享一些软件工具~截图工具
  11. 2022-2028全球针织捆包网行业调研及趋势分析报告
  12. 8年码龄的技术总监,去上市公司面试,结果凉了!
  13. wordpress面包屑-wordpress面包屑设置方法
  14. 使用Ambari快速部署Hadoop大数据环境
  15. antd-select下拉框如何同时获取所选值ID和名字属性
  16. AVG提醒:网银大盗疯狂肆虐阿里旺旺
  17. Android APP一段时间无操作显示屏保
  18. Altium设置菜单之系统菜单
  19. 面试题(一)- 谈谈你对数据库中索引的理解
  20. 「浏览器书签」与「笔记类工具」在信息管理中的定位

热门文章

  1. 中国人去日本买电饭煲令人痛心!董明珠:难道我泱泱大国造不出吗?
  2. 不是华为!国内首款5G手机开卖:10分钟送达第一单
  3. 8月8日发布!三星Galaxy Note 10+ 5G版FCC认证示意图泄露
  4. 联想Z6 Pro测评:斗战圣佛?很能打!
  5. == 和 === 有什么区别
  6. AR识别卡制作工具 1.0终于完工了
  7. 利用公式画图_【高中数学】重要公式大汇总!
  8. python比java难吗-Python 的开发效率真的比 Java高吗?
  9. datagrip jdbc驱动_datagrip离线安装驱动jar
  10. Golang实践录:利用反射reflect构建通用打印结构体接口