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:

 1 <%@ page language="java" contentType="text/html; charset=UTF-8"
 2     pageEncoding="UTF-8"%>
 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 4 <html>
 5 <head>
 6 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 7 <title>Insert title here</title>
 8
 9 <%
10     String username = "";
11     String password = "";
12     //获取当前站点的所有Cookie
13     Cookie[] cookies = request.getCookies();
14     for (int i = 0; i < cookies.length; i++) {//对cookies中的数据进行遍历,找到用户名、密码的数据
15         if ("username".equals(cookies[i].getName())) {
16             username = cookies[i].getValue();
17         } else if ("password".equals(cookies[i].getName())) {
18             password = cookies[i].getValue();
19         }
20     }
21 %>
22
23 </head>
24 <body>
25     <form action="login_handler.jsp" method="post">
26         username:<input type="text" name="name" value="<%=username%>" /><br/>
27         password:<input type="password" name="pwd" value="<%=password%>" /><br/>
28         <input type="checkbox" value="y" name="isLogin">自动登录<br/>
29         <input type="submit" value="登录" />
30     </form>
31 </body>
32 </html>

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

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

login_handler.jsp:

 1 <%@ page language="java" contentType="text/html; charset=UTF-8"
 2     pageEncoding="UTF-8"%>
 3 <%
 4     String name = request.getParameter("name");
 5     String pwd = request.getParameter("pwd");
 6     String flag = request.getParameter("isLogin");
 7
 8     if (!"admin".equals(name) && !"123".equals(pwd)) {
 9         response.sendRedirect("error.jsp");
10     } else {
11         if ("y".equals(flag)) {
12             //创建两个Cookie对象
13             Cookie nameCookie = new Cookie("username", name);
14             //设置Cookie的有效期为3天
15             nameCookie.setMaxAge(60 * 60 * 24 * 3);
16             Cookie pwdCookie = new Cookie("password", pwd);
17             pwdCookie.setMaxAge(60 * 60 * 24 * 3);
18             response.addCookie(nameCookie);
19             response.addCookie(pwdCookie);
20         }
21         response.sendRedirect("success.jsp");
22     }
23 %>

核心代码是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>

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

时间: 2024-12-26 12:29:02

JavaWeb学习(四)-Cookie实现记住密码的功能的相关文章

JavaWeb学习笔记10--Cookie实现记住密码的功能

[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4096807.html [正文] 本文主要内容: ?1.什么是Cookie ?2.Cookie带来的好处 ?3.Cookie的主要方法 一.什么是Cookie cookie是一种WEB服务器通过浏览器在访问者的硬盘上存储信息的手段.Cookie的目的就是为用户带来方便,为网站带来增值.虽然有着许多误

Cookie实现记住密码的功能

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

js中利用cookie实现记住密码功能

js中利用cookie实现记住密码功能 在登录界面添加记住密码功能,我首先想到的是在java后台中调用cookie存放账号密码,大致如下: 1 HttpServletRequest request 2 HttpServletResponse response 3 Cookie username = new Cookie("username ","cookievalue"); 4 Cookie password = new Cookie("password

记住密码功能 JS结合JQuery 操作 Cookie 实现记住密码和用户名!

// 记住密码功能 JS结合JQuery 操作 Cookie 实现记住密码和用户名! var username = document.getElementById("username"); var password = document.getElementById("password"); var date=new Date(); var expiresDays=1000; //过期时间. date.setTime(date.getTime()+expiresDa

jquery.cookie.js 操作cookie实现记住密码功能的实现代码

jquery.cookie.js操作cookie实现记住密码功能,很简单很强大,喜欢的朋友可以参考下. 复制代码代码如下: //初始化页面时验证是否记住了密码 $(document).ready(function() { if ($.cookie("rmbUser") == "true") { $("#rmbUser").attr("checked", true); $("#user").val($.coo

安卓实现记住密码登陆功能

在安卓程序中,我们经常会使用到很多登陆的功能,会看到很多记住密码的地方.这里,我给大家写一个简单的记住密码的功能.注意,这里是简单的记住密码功能,仅用于练习学习用哦.这个程序主要是给学习安卓的朋友作为一个入门程序来学习.用到的知识点主要就是JAVA的IO流知识.所以,如果对IO流知识不熟悉的朋友们,一定要好好回去复习一下IO的知识.IO流的知识对于我们以后的开发有着十分重要的地位.这里顺便给点建议,学习安卓其实到头来,难得还是JAVA.如果前期JAVA学的好,其实安卓学起来是还是比较得心应手的.

cookie实现记住密码

[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4096807.html [正文] 本文主要内容: •1.什么是Cookie •2.Cookie带来的好处 •3.Cookie的主要方法 一.什么是Cookie cookie是一种WEB服务器通过浏览器在访问者的硬盘上存储信息的 手段.Cookie的目的就是为用户带来方便,为网站带来增值.虽然有着许多

Cookie实现记住密码自动登录功能

网站登录的时候一般会有一个“记住密码”或者“一周之内记住我”之类的勾选框,勾选之后指定时间内访问同一网站将不需要再次输入账号密码,很方便,如下图所示 原理很简单,如下 勾选复选框登录之后会传递一个开关值(on/off)给后台的登录方法(例如/login),以此为依据: 登录成功后,值为 on 时向客户端浏览器写入 Cookie 信息,包括用户名和密码(为安全计,可以更换或者加密要保存的信息): 再次访问站点时,读取浏览器传过来的 Cookie 信息并自动登录. 先看看登录方法 @RequestM

通过js来设置cookie和读取cookie,实现登陆时记住密码的功能

function setCookie(){ //设置cookie var loginCode = $("#login_code").val(); //获取用户名信息 var pwd = $("#login_password").val(); //获取登陆密码信息 var checked = $("[name='checkbox']:checked");//获取“是否记住密码”复选框 if(checked && checked.le