Cookie实现简化登录

写在前面:

      以下只用于自己复习,仅供参考,有不到位或错误的地方欢迎指出,非常感谢!

目录

一、Cookie介绍

1.Cookie概念:

2.Cookie作用

3.Cookie的使用原则

二、相关操作

1.客户端页面:

2.后台数据处理


一、Cookie介绍

1.Cookie概念:

Cookie 是保存在客户端的小文本,保存的位置分两种:
(1)Cookie可能保存在客户端浏览器的所占内存中,关闭浏览器后, Cookie 就不再存在
(2)Cookie也可能保存在客户 PC 机的硬盘上,设置有效时间,超过有效时间后失效

2.Cookie作用

(1)简化登录:很多网站在登录时,可以选择多久之内不需要登录,在选择的时间段内,不用登录即可以跳到到登录成功页面。
(2)记录浏览记录:购物网站,每次登录后,会看到曾经浏览过的商品信息。

3.Cookie的使用原则

Cookie 能够把小文本保存到客户端,在服务器与客户端进行传输。然而, Cookie 容易造成信息泄露,另外,客户端可以通过设置阻止 Cookie ,也可能手工清除 Cookie ,因此,使用 Cookie 的原则:
(1)不用cookie 保存对保密性要求高的信息,例如银行卡密码等
(2)不用cookie 实现必要功能,防止 cookie 被删除后出现错误
(3)cookie 用来实现“锦上添花”的功能,也就是说,一旦 cookie 被禁止或者被删除,应用依然能正常运行

二、相关操作

1.创建Cookie对象
Cookie对象是以键值对的方式保存的,都是字符串形式
Cookie cookie=new Cookie("name","value")

2.设置Cookie对象的有效时长

时长以秒为单位
setMaxAge(int expiry)
3.将Cookie对象保存到本地硬盘
response.addCookie(newCookie)
4.从本地硬盘查找获取Cookie对象
Cookie[]   cookies =  request.getCookies();

三、简单的运用

此案例分为客户端页面和后台数据处理页面

1.客户端页面:

 代码实现:

<% 
String user=null;
String pwd=null;
Cookie[] cookies=request.getCookies();
if(cookies!=null){
for(Cookie cookie:cookies){
	if("user".equals(cookie.getName())){
		user=cookie.getValue();
		System.out.println(user);
	}
	if("pwd".equals(cookie.getName())){
		pwd=cookie.getValue();
	}
}
}
if(user!=null&&pwd!=null){
	request.getRequestDispatcher("LoginServlet?user="+user+"&pwd="+pwd).forward(request, response);
}

%>

<form action="LoginServlet">

 <fieldset> 

<legend><font color="red" face="宋体" size="4">登录页面</font></legend>
用户账号:<input type="text" name="user"><br>
用户密码:<input type="text" name="pwd"><br>
一天免登录<input type="checkbox" name="day" value="1"><br>
三天免登录<input type="checkbox" name="day" value="3"><br>
<input type="submit" value="登录">



 </fieldset> 

</form>

2.后台数据处理

代码实现:

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		String user=request.getParameter("user");
		String pwd=request.getParameter("pwd");
		String dayStr=request.getParameter("day");
		if("tom".equals(user)&&"123".equals(pwd)) {
			int days=0;
			if(dayStr!=null) {
				 days=Integer.parseInt(dayStr);
				 Cookie userCookie=new Cookie("user",user);
					Cookie pwdCookie=new Cookie("pwd",pwd);
					userCookie.setMaxAge(days*24*3600);
					pwdCookie.setMaxAge(days*24*3600);
					response.addCookie(userCookie);
					response.addCookie(pwdCookie);
			
			}

			request.getRequestDispatcher("succse.jsp").forward(request, response);
			
		}
	}

  • 0
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值