热门标签 | HotTags
当前位置:  开发笔记 > 前端 > 正文

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

cookie是一种WEB服务器通过浏览器在访问者的硬盘上存储信息的手段。Cookie的目的就是为用户带来方便,为网站带来增值。这篇文章主要介绍了JavaWeb中Cookie实现记住密码的功能示例,需要的朋友可以参考下

本文主要内容:

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

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

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

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

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实现记住密码的功能示例,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!


推荐阅读
  • 本文详细介绍了跨站脚本攻击(XSS)的基本概念、工作原理,并通过实际案例演示如何构建XSS漏洞的测试环境,以及探讨了XSS攻击的不同形式和防御策略。 ... [详细]
  • 利用Cookie实现用户登录状态的持久化
    本文探讨了如何使用Cookie技术在Web应用中实现用户登录状态的持久化,包括Cookie的基本概念、优势及主要操作方法,并通过一个简单的Java Web项目示例展示了具体实现过程。 ... [详细]
  • 本文详细介绍了PHP中的几种超全局变量,包括$GLOBAL、$_SERVER、$_POST、$_GET等,并探讨了AJAX的工作原理及其优缺点。通过具体示例,帮助读者更好地理解和应用这些技术。 ... [详细]
  • 本文详细介绍了在PHP中如何获取和处理HTTP头部信息,包括通过cURL获取请求头信息、使用header函数发送响应头以及获取客户端HTTP头部的方法。同时,还探讨了PHP中$_SERVER变量的使用,以获取客户端和服务器的相关信息。 ... [详细]
  • 解决远程桌面连接时的身份验证错误问题
    本文介绍了如何解决在尝试远程访问服务器时遇到的身份验证错误,特别是当系统提示‘要求的函数不受支持’时的具体解决步骤。通过调整Windows注册表设置,您可以轻松解决这一常见问题。 ... [详细]
  • Redis: 高效的键值存储系统
    Redis是一款遵循BSD许可的开源高性能键值存储系统,它不仅支持多种数据类型的存储,还提供了数据持久化和复制等功能,显著区别于其他键值缓存解决方案。 ... [详细]
  • 第1章选择流程控制语句1.1顺序结构的基本使用1.1.1顺序结构概述是程序中最简单最基本的流程控制,没有特定的语法结构,按照代码的先后顺序,依次执行,程序中大多数的代码都是这样执行 ... [详细]
  • 本文介绍了一个基本的同步Socket程序,演示了如何实现客户端与服务器之间的简单消息传递。此外,文章还概述了Socket的基本工作流程,并计划在未来探讨同步与异步Socket的区别。 ... [详细]
  • 最新进展:作为最接近官方声明的信息源,本文吸引了大量关注。若需获取最新动态,请访问:lkhill.com/ccie-version-5-update ... [详细]
  • 本文介绍了基于Java的在线办公工作流系统的毕业设计方案,涵盖了MyBatis框架的应用、源代码分析、调试与部署流程、数据库设计以及相关论文撰写指导。 ... [详细]
  • 本文探讨了在SharePoint环境中使用BDC(Business Data Catalog)时遇到的问题及其解决策略,包括XML文件导入SSP后的不可见性问题以及与远程SQL Server 2005连接的难题。 ... [详细]
  • 探索OpenWrt中的LuCI框架
    本文深入探讨了OpenWrt系统中轻量级HTTP服务器uhttpd的工作原理及其配置,重点介绍了LuCI界面的实现机制。 ... [详细]
  • Git版本控制基础解析
    本文探讨了Git作为版本控制工具的基本概念及其重要性,不仅限于代码管理,还包括文件的历史记录与版本切换功能。通过对比Git与SVN,进一步阐述了分布式版本控制系统的独特优势。 ... [详细]
  • 分布式计算助力链力实现毫秒级安全响应,确保100%数据准确性
    随着分布式计算技术的发展,其在数据存储、文件传输、在线视频、社交平台及去中心化金融等多个领域的应用日益广泛。国际知名企业如Firefox、Google、Opera、Netflix、OpenBazaar等均已采用该技术,推动了技术创新和服务升级。 ... [详细]
  • 使用jQuery与百度地图API实现地址转经纬度功能
    本文详细介绍了如何利用jQuery和百度地图API将地址转换为经纬度,包括申请API密钥、页面构建及核心代码实现。 ... [详细]
author-avatar
黑鸽子
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有