全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

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"%>
 <!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中的使用  # 是在  # 自动登录  # 弹出  # 能使  # 小编  # 单击  # 勾选  # 是一种  # 最多  # 在此  # 遍历  # 这就  # 就把  # 给大家  # 详细介绍  # 时间为  # 可以使用  # 当我们  # 主要内容  # 可以选择 


相关文章: c++如何打印函数堆栈信息_c++ backtrace函数与符号名解析【方法】  GML (Geography Markup Language)是什么,它如何用XML来表示地理空间信息?  c# 服务器GC和工作站GC的区别和设置  如何快速上传建站程序避免常见错误?  如何通过二级域名建站提升品牌影响力?  建站之星五站合一营销型网站搭建攻略,流量入口全覆盖优化指南  建站一年半SEO优化实战指南:核心词挖掘与长尾流量提升策略  建站之星在线版空间:自助建站+智能模板一键生成方案  微信推文制作网站有哪些,怎么做微信推文,急?  如何通过虚拟主机快速完成网站搭建?  如何通过虚拟主机快速搭建个人网站?  番禺网站制作公司哪家值得合作,番禺图书馆新馆开放了吗?  如何在Windows服务器上快速搭建网站?  如何通过商城自助建站源码实现零基础高效建站?  南宁网站建设制作定制,南宁网站建设可以定制吗?  微信小程序制作网站有哪些,微信小程序需要做网站吗?  广州网站制作的公司,现在专门做网站的公司有没有哪几家是比较好的,性价比高,模板也多的?  黑客入侵网站服务器的常见手法有哪些?  建站之星备案流程有哪些注意事项?  如何通过VPS搭建网站快速盈利?  实现虚拟支付需哪些建站技术支撑?  电脑免费海报制作网站推荐,招聘海报哪个网站多?  建设网站制作价格,怎样建立自己的公司网站?  图片制作网站免费软件,有没有免费的网站或软件可以将图片批量转为A4大小的pdf?  攀枝花网站建设,攀枝花营业执照网上怎么年审?  如何通过wdcp面板快速创建网站?  高配服务器限时抢购:企业级配置与回收服务一站式优惠方案  详解免费开源的DotNet二维码操作组件ThoughtWorks.QRCode(.NET组件介绍之四)    济南网站建设制作公司,室内设计网站一般都有哪些功能?  网站制作话术技巧,网站推广做的好怎么话术?  建站之星CMS建站配置指南:模板选择与SEO优化技巧  网站制作哪家好,cc、.co、.cm哪个域名更适合做网站?  如何选择适合PHP云建站的开源框架?  为什么Go需要go mod文件_Go go mod文件作用说明  上海制作企业网站有哪些,上海有哪些网站可以让企业免费发布招聘信息?  Android使用GridView实现日历的简单功能  娃派WAP自助建站:免费模板+移动优化,快速打造专业网站  免费ppt制作网站,有没有值得推荐的免费PPT网站?  制作网页的网站有哪些,电脑上怎么做网页?  网站制作和推广的区别,想自己建立一个网站做推广,有什么快捷方法马上做好一个网站?  内部网站制作流程,如何建立公司内部网站?  装修招标网站设计制作流程,装修招标流程?  如何挑选高效建站主机与优质域名?  北京网站制作费用多少,建立一个公司网站的费用.有哪些部分,分别要多少钱?  高防服务器如何保障网站安全无虞?  如何用AWS免费套餐快速搭建高效网站?  rsync同步时出现rsync: failed to set times on “xxxx”: Operation not permitted  建站之星云端配置指南:模板选择与SEO优化一键生成  设计网站制作公司有哪些,制作网页教程? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。