热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

本文主要内容:•1、什么是Cookie•2、Cookie带来的好处•3、Cookie的主要方法 一、什么是Cookiecookie是一种WEB服务

本文主要内容:

•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"%>
 
 
 
 
  
 <%
   String username = "";
  String password = "";
   //获取当前站点的所有COOKIE
   COOKIE[] COOKIEs = request.getCOOKIEs();
  for (int i = 0; i  
 
 
   
     username:
password:
自动登录

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的位置:

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

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

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

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

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

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

success.jsp:

<%@ page language="java" cOntentType="text/html; charset=UTF-8"
   pageEncoding="UTF-8"%>
 
 
 
 
 
 
 success.
 
  

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

error.jsp:

<%@ page language="java" cOntentType="text/html; charset=UTF-8"
   pageEncoding="UTF-8"%>
 
 
 
 
 
 
 error.
 
 

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

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

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


推荐阅读
  • 在本文中,我们将为 HelloWorld 项目添加视图组件,以确保控制器返回的视图路径能够正确映射到指定页面。这一步骤将为后续的测试和开发奠定基础。首先,我们将介绍如何配置视图解析器,以便 SpringMVC 能够识别并渲染相应的视图文件。 ... [详细]
  • 本文探讨了如何利用 jQuery 的 JSONP 技术实现跨域调用外部 Web 服务。通过详细解析 JSONP 的工作原理及其在 jQuery 中的应用,本文提供了实用的代码示例和最佳实践,帮助开发者解决跨域请求中的常见问题。 ... [详细]
  • 利用树莓派畅享落网电台音乐体验
    最近重新拾起了闲置已久的树莓派,这台小巧的开发板已经沉寂了半年多。上个月闲暇时间较多,我决定将其重新启用。恰逢落网电台进行了改版,回忆起之前在树莓派论坛上看到有人用它来播放豆瓣音乐,便萌生了同样的想法。通过一番调试,终于实现了在树莓派上流畅播放落网电台音乐的功能,带来了全新的音乐享受体验。 ... [详细]
  • DVWA学习笔记系列:深入理解CSRF攻击机制
    DVWA学习笔记系列:深入理解CSRF攻击机制 ... [详细]
  • 如何将TS文件转换为M3U8直播流:HLS与M3U8格式详解
    在视频传输领域,MP4虽然常见,但在直播场景中直接使用MP4格式存在诸多问题。例如,MP4文件的头部信息(如ftyp、moov)较大,导致初始加载时间较长,影响用户体验。相比之下,HLS(HTTP Live Streaming)协议及其M3U8格式更具优势。HLS通过将视频切分成多个小片段,并生成一个M3U8播放列表文件,实现低延迟和高稳定性。本文详细介绍了如何将TS文件转换为M3U8直播流,包括技术原理和具体操作步骤,帮助读者更好地理解和应用这一技术。 ... [详细]
  • 如何使用 `org.apache.tomcat.websocket.server.WsServerContainer.findMapping()` 方法及其代码示例解析 ... [详细]
  • 在对WordPress Duplicator插件0.4.4版本的安全评估中,发现其存在跨站脚本(XSS)攻击漏洞。此漏洞可能被利用进行恶意操作,建议用户及时更新至最新版本以确保系统安全。测试方法仅限于安全研究和教学目的,使用时需自行承担风险。漏洞编号:HTB23162。 ... [详细]
  • Spring框架中枚举参数的正确使用方法与技巧
    本文详细阐述了在Spring Boot框架中正确使用枚举参数的方法与技巧,旨在帮助开发者更高效地掌握和应用枚举类型的数据传递,适合对Spring Boot感兴趣的读者深入学习。 ... [详细]
  • 本文介绍了如何利用Struts1框架构建一个简易的四则运算计算器。通过采用DispatchAction来处理不同类型的计算请求,并使用动态Form来优化开发流程,确保代码的简洁性和可维护性。同时,系统提供了用户友好的错误提示,以增强用户体验。 ... [详细]
  • 优化后的标题:深入探讨网关安全:将微服务升级为OAuth2资源服务器的最佳实践
    本文深入探讨了如何将微服务升级为OAuth2资源服务器,以订单服务为例,详细介绍了在POM文件中添加 `spring-cloud-starter-oauth2` 依赖,并配置Spring Security以实现对微服务的保护。通过这一过程,不仅增强了系统的安全性,还提高了资源访问的可控性和灵活性。文章还讨论了最佳实践,包括如何配置OAuth2客户端和资源服务器,以及如何处理常见的安全问题和错误。 ... [详细]
  • Python 程序转换为 EXE 文件:详细解析 .py 脚本打包成独立可执行文件的方法与技巧
    在开发了几个简单的爬虫 Python 程序后,我决定将其封装成独立的可执行文件以便于分发和使用。为了实现这一目标,首先需要解决的是如何将 Python 脚本转换为 EXE 文件。在这个过程中,我选择了 Qt 作为 GUI 框架,因为之前对此并不熟悉,希望通过这个项目进一步学习和掌握 Qt 的基本用法。本文将详细介绍从 .py 脚本到 EXE 文件的整个过程,包括所需工具、具体步骤以及常见问题的解决方案。 ... [详细]
  • Web开发框架概览:Java与JavaScript技术及框架综述
    Web开发涉及服务器端和客户端的协同工作。在服务器端,Java是一种优秀的编程语言,适用于构建各种功能模块,如通过Servlet实现特定服务。客户端则主要依赖HTML进行内容展示,同时借助JavaScript增强交互性和动态效果。此外,现代Web开发还广泛使用各种框架和库,如Spring Boot、React和Vue.js,以提高开发效率和应用性能。 ... [详细]
  • 本文详细介绍了一种利用 ESP8266 01S 模块构建 Web 服务器的成功实践方案。通过具体的代码示例和详细的步骤说明,帮助读者快速掌握该模块的使用方法。在疫情期间,作者重新审视并研究了这一未被充分利用的模块,最终成功实现了 Web 服务器的功能。本文不仅提供了完整的代码实现,还涵盖了调试过程中遇到的常见问题及其解决方法,为初学者提供了宝贵的参考。 ... [详细]
  • 本指南介绍了 `requests` 库的基本使用方法,详细解释了其七个主要函数。其中,`requests.request()` 是构建请求的基础方法,支持其他高级功能的实现。此外,我们还重点介绍了如何使用 `requests.get()` 方法来获取 HTML 网页内容,这是进行网页数据抓取和解析的重要步骤。通过这些基础方法,读者可以轻松上手并掌握网页数据抓取的核心技巧。 ... [详细]
  • Python 中 json.dumps() 和 json.loads() 的使用方法详解——Python 面试与 JavaScript 面试必备知识
    在 Python 中,`json.dumps()` 和 `json.loads()` 是处理 JSON 数据的核心函数。`json.dumps()` 用于将字典或其他可序列化对象转换为 JSON 格式的字符串,而 `json.loads()` 则用于将 JSON 字符串解析为 Python 对象。本文详细介绍了这两个函数的使用方法及其在 Python 和 JavaScript 面试中的重要性,帮助读者掌握这些关键技能。 ... [详细]
author-avatar
三封酒可_894
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有