JavaWeb 中Cookie实现记住密码的功能示例

发布时间 - 2026-01-11 02:03:55    点击率:

本文主要内容:

•1、什么是Cookie
•2、Cookie带来的好处
•3、Cookie的主要方法 

一、什么是Cookie

cookie是一种WEB服务器通过浏览器在访问者的硬盘上存储信息的手段。Cookie的目的就是为用户带来方便,为网站带来增值。虽然有着许多误传,事实上Cookie并不会造成严重的安全威胁。Cookie永远不会以任何方式执行,因此也不会带来病毒或攻击你的系统。另外,由于浏览器一般只允许存放300个Cookie,每个站点最多存放20个Cookie,每个Cookie的大小限制为4KB,因此Cookie不会塞满你的硬盘。

例如,当我们第一次访问网站输入用户名密码时,可以选择让系统记住用户名密码,下次就不用重新输入了,这就是典型的Cookie的应用。 

二、Cookie带来的好处:

cookies给网站和用户带来的好处非常多:

1. Cookie能使站点跟踪特定访问者的访问次数、最后访问时间等

2. Cookie能告诉在线广告商广告被点击的次数,从而可以更精确的投放广告

3. Cookie有效期限未到时,Cookie能使用户在不键入密码和用户名的情况下进入曾经浏览过的一些站点

4. Cookie能帮助站点统计用户个人资料以实现各种各样的个性化服务在JSP中,我们也可以使用Cookie,来编写一些功能强大的应用程序。

有些浏览器可以禁用Cookie,所以不能使用Cookie来完成核心的业务。 

三、Cookie类的主要方法:

int getMaxAge() 返回Cookie过期之前的最大时间,以秒计算。
int setMaxAge() 设置Cookie过期时间,以秒计算。
String getName() 返回Cookie的名字
String getValue() 返回Cookie的值。
void setValue(String newValue) cookie创建后设置一个新的值。

注:名字和值是我们始终关心的两个部分。稍后会详细介绍getName/setName、getValue/setValue。 

四、代码举例:

【实例】实现记住密码、自动登录的功能

新建JavaWeb工程Test06.

login.jsp:

 <%@ page language="java" contentType="text/html; charset=UTF-8"
  pageEncoding="UTF-8"%>
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>Insert title here</title> 
 <%
   String username = "";
  String password = "";
   //获取当前站点的所有Cookie
   Cookie[] cookies = request.getCookies();
  for (int i = 0; i < cookies.length; i++) {//对cookies中的数据进行遍历,找到用户名、密码的数据
     if ("username".equals(cookies[i].getName())) {
       username = cookies[i].getValue();
    } else if ("password".equals(cookies[i].getName())) {
       password = cookies[i].getValue();
    }
   }
 %> 
 </head>
 <body>
   <form action="login_handler.jsp" method="post">
     username:<input type="text" name="name" value="<%=username%>" /><br/>
    password:<input type="password" name="pwd" value="<%=password%>" /><br/>
    <input type="checkbox" value="y" name="isLogin">自动登录<br/> 
    <input type="submit" value="登录" />
  </form>
 </body>
 </html>

13行代码:获取当前站点所有的Cookie。注:这个Cookie类是在接下来的login_handler.jsp文件中定义的。

26行的 value="<%=username%>",以及27行的value="<%=password%>",是在16行、18行获取到的值。

login_handler.jsp:

<%@ page language="java" contentType="text/html; charset=UTF-8"
  pageEncoding="UTF-8"%>
 <%
   String name = request.getParameter("name");
   String pwd = request.getParameter("pwd");
   String flag = request.getParameter("isLogin"); 
   if (!"admin".equals(name) && !"123".equals(pwd)) {
     response.sendRedirect("error.jsp");
   } else {
     if ("y".equals(flag)) {
      //创建两个Cookie对象
      Cookie nameCookie = new Cookie("username", name);
      //设置Cookie的有效期为3天
      nameCookie.setMaxAge(60 * 60 * 24 * 3);
      Cookie pwdCookie = new Cookie("password", pwd);
      pwdCookie.setMaxAge(60 * 60 * 24 * 3);
      response.addCookie(nameCookie);
       response.addCookie(pwdCookie);
    }
    response.sendRedirect("success.jsp");
   }
 %>

核心代码是11行至20行。

11行:如果用户勾选了“自动登录”,就把用户名和密码的信息放到Cookie中。

第15、17行代码是设置Cookie的存储时间。如果不设置Cookie的存储时间,则默认的存储时间为0,此时Cookie保存的数据是存放在内存中的,当浏览器关闭,则Cookie消失失效。

设置了存储时间后,此时设置Cookie的数据将保存在硬盘中,不同的浏览器存放的具体位置是不一样的。

谷歌浏览器查看cookie的位置:

“菜单-设置-显示高级设置-内容设置”:

单击上图中的“内容设置”,弹出如下界面:

单击上图的红框部分,弹出如下界面:

success.jsp:

<%@ page language="java" contentType="text/html; charset=UTF-8"
   pageEncoding="UTF-8"%>
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>Insert title here</title>
 </head>
 <body>success.
 </body>
 </html> 

如果登陆成功,就调到这个页面。

error.jsp:

<%@ page language="java" contentType="text/html; charset=UTF-8"
   pageEncoding="UTF-8"%>
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>Insert title here</title>
 </head>
 <body>error.
 </body>
 </html>

运行程序,当输入正确的用户名密码进行登录,并勾选“记住密码”后,下次再回到登录界面,就是下面的这个样子:

以上所述是小编给大家介绍的JavaWeb 中Cookie实现记住密码的功能示例,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!


# cookie  # 记住密码功能实现  # javaweb实现记住密码功能  # 如何使用会话Cookie和Java实现JWT身份验证  # Java后端Cookie实现(时间戳)代码实例  # Java接口测试Cookie与token原理解析  # Java 模拟cookie登陆简单操作示例  # 在java中http请求带cookie的例子  # Java 对 Cookie增删改查的实现示例  # Java Web学习之Cookie和Session的深入理解  # java使用Cookie判断用户登录情况的方法  # servlet之cookie简介_动力节点Java学院整理  # java中Servlet Cookie取不到值原因解决办法  # JavaWeb使用Session和Cookie实现登录认证  # Cookie在Java中的使用  # 是在  # 自动登录  # 弹出  # 能使  # 小编  # 单击  # 勾选  # 是一种  # 最多  # 在此  # 遍历  # 这就  # 就把  # 给大家  # 详细介绍  # 时间为  # 可以使用  # 当我们  # 主要内容  # 可以选择 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 如何在浏览器中启用Flash_2025年继续使用Flash Player的方法【过时】  Android Socket接口实现即时通讯实例代码  linux top下的 minerd 木马清除方法  Laravel如何使用Service Provider注册服务_Laravel服务提供者配置与加载  Laravel全局作用域是什么_Laravel Eloquent Global Scopes应用指南  php中::能调用final静态方法吗_final修饰静态方法调用规则【解答】  Laravel Livewire是什么_使用Laravel Livewire构建动态前端界面  非常酷的网站设计制作软件,酷培ai教育官方网站?  邀请函制作网站有哪些,有没有做年会邀请函的网站啊?在线制作,模板很多的那种?  Laravel如何监控和管理失败的队列任务_Laravel失败任务处理与监控  夸克浏览器网页跳转延迟怎么办 夸克浏览器跳转优化  Laravel怎么实现微信登录_Laravel Socialite第三方登录集成  Laravel如何实现文件上传和存储?(本地与S3配置)  Laravel怎么做缓存_Laravel Cache系统提升应用速度的策略与技巧  Midjourney怎么调整光影效果_Midjourney光影调整方法【指南】  Laravel Telescope怎么调试_使用Laravel Telescope进行应用监控与调试  JavaScript如何实现错误处理_try...catch如何捕获异常?  Laravel如何使用Service Provider服务提供者_Laravel依赖注入与容器绑定【深度】  昵图网官方站入口 昵图网素材图库官网入口  Laravel Pest测试框架怎么用_从PHPUnit转向Pest的Laravel测试教程  CSS3怎么给轮播图加过渡动画_transition加transform实现【技巧】  Laravel如何实现数据导出到PDF_Laravel使用snappy生成网页快照PDF【方案】  Laravel如何创建自定义Facades?(详细步骤)  通义万相免费版怎么用_通义万相免费版使用方法详细指南【教程】  JavaScript中如何操作剪贴板_ClipboardAPI怎么用  Laravel如何优雅地处理服务层_在Laravel中使用Service层和Repository层  Python文件流缓冲机制_IO性能解析【教程】  高性能网站服务器配置指南:安全稳定与高效建站核心方案  打开php文件提示内存不足_怎么调整php内存限制【解决方案】  Laravel怎么使用Blade模板引擎_Laravel模板继承与Component组件复用【手册】  Laravel表单请求验证类怎么用_Laravel Form Request分离验证逻辑教程  Laravel Seeder怎么填充数据_Laravel数据库填充器的使用方法与技巧  javascript和jQuery中的AJAX技术详解【包含AJAX各种跨域技术】  html5audio标签播放结束怎么触发事件_onended回调方法【教程】  Laravel Artisan命令怎么自定义_创建自己的Laravel命令行工具完全指南  Laravel如何使用Guzzle调用外部接口_Laravel发起HTTP请求与JSON数据解析【详解】  如何在万网ECS上快速搭建专属网站?  Laravel的Blade指令怎么自定义_创建你自己的Laravel Blade Directives  如何挑选高效建站主机与优质域名?  Laravel怎么在Controller之外的地方验证数据  QQ浏览器网页版登录入口 个人中心在线进入  深入理解Android中的xmlns:tools属性  Laravel如何使用withoutEvents方法临时禁用模型事件  ,交易猫的商品怎么发布到网站上去?  如何确保FTP站点访问权限与数据传输安全?  悟空识字如何进行跟读录音_悟空识字开启麦克风权限与录音  Python制作简易注册登录系统  Laravel如何使用Telescope进行调试?(安装和使用教程)  PHP 实现电台节目表的智能时间匹配与今日/明日轮播逻辑  HTML5建模怎么导出为FBX格式_FBX格式兼容性及导出步骤【指南】