cookie技术---以及---和session内置对象的区别

3 篇文章 0 订阅

Cookie 原来指就着牛奶一起吃的点心,因特网中指一种技术:指Web应用服务器为了辨别用户身份、进行 session 跟踪而储存在客户端上的数据,该数据通常经过了加密;

cookie不是内置对象

浏览器访问Web服务器某个资源时,Web服务器在HTTP响应消息头中附带传给浏览器的信息,该信息在客户端浏览器存储;当客户端浏览器再次请求该资源时,会在在HTTP请求消息中增加Cookie请求头字段将Cookie再回传给Web服务器。

浏览器保存某个Cookie后,在每次访问该Web服务器时都会在HTTP请求头中将这个Cookie回传给Web服务器。

一个Cookie只能标识一种信息,它至少含有一个标识该信息的名称(NAME)和设置值。Cookie cookie=new Cookie(name,值);    cookie可用于Java也可以用于JavaScript

一个Web站点可以给一个浏览器发送多个Cookie,一个浏览器也可以存储多个Web站点提供的Cookie.

浏览器一般只允许存放300个Cookie,每个站点最多存放20个Cookie,每个Cookie的大小限制为4KB(1KB可以保存512个汉字)。

原理和使用

原理:Web服务器通过在HTTP响应信息中增加Set-Cookie响应头字段将Cookie信息发送给浏览器,浏览器再次向Web服务器发送请求时,在HTTP请求消息中增加Cookie请求头字段将Cookie再回传给Web服务器。 

 

使用步骤

1.创建Cookie对象

Cookie cookie=new Cookie(name,值);

2、 调用response方法将Cookie传给客户端

response.addCookie(cookie);

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
	<head>
		<title>Cookie</title>
	</head>
	<body>
		<%
			Cookie []cookies=request.getCookies();//获得所有cookie
	        if(cookies!=null){
	           for(Cookie cookie : cookies){
	               if(cookie.getName().equals("name")){  
	                 String value = cookie.getValue(); 
	                 System.out.println(value);
	               }
	           }
	        }else{
	        	Cookie cookie=new Cookie("name","Tom");
	    		response.addCookie(cookie);
	        }
		%>
	</body>
</html>

 

第一次发送请求时,无cookie,再次发送请求可以看见:

 

使用cookie的缺点:

安全性差(多人用一个电脑);

cookie信息是可以删除的();

cookie只能存储字符串类型的内容。

Cookie类常用方法

getName():

getValue():

setMaxAge(int age) :默认情况下Web服务器发送到客户端浏览器的Cookie是一个会话级别的Cookie,此时的Cookie信息存储在浏览器内存中,用户退出浏览器后该Cookie被删除;若希望客户端浏览器将Cookie信息存储在磁盘文件(C:\Users\Administrator\AppData\Local\Google\Chrome\User Data\Default\Cache)上,则需要设置Cookie最大时效,该方法传入的实参是一个以秒为单位的数值;若设置为0,则命令浏览器立即删除该Cookie。

setPath(String path):Cookie作用范围默认情况下只能作用于当前目录和当前目录的子目录,但不能作用于当前目录的上及上级目录,如果需要在上级目录中获取Cookie,需要设置Cookie作用范围:其中/代表Web站点的根目录,request.getContextPath();

可以使用cookie对象的setMaxAge方法设置Cookie过期时间。这样就可以控制Cookie生效的时间了,比如7天面登录之类的功能(但是使用Cookie安全性较差)。

cookie和session的区别

 1.保存位置

session:服务器端 ,当正常关闭服务器后,session文件存放在Tomcat服务器端           

cookie:浏览器客户端,默认情况下Web服务器发送到客户端浏览器的Cookie是一个会话级别的Cookie,此时的Cookie信息存储在浏览器内存中,用户退出浏览器后该Cookie被删除

2.存储类型

session 对象可以存储字符串,基本数据类型,自定义数据类型

cookie只能存储字符串类型的内容

3.生命周期

session随会话结束而关闭,即在一次会话范围内有效

cookie可以指定时长

4.存放信息的重要性

session:可以存放重要信息

cookie存放非重要的信息

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值