JavaEE会话技术之Cookie

13 篇文章 0 订阅


概念

会话

一次会话包含多次请求和响应。
		
一次会话:浏览器第一次给服务器资源发送请求,会话建立,直到有一方断开为止。

功能

在一次会话范围内的多次请求间,共享数据

方式

1.客户端会话技术:
		Cookie
2.服务器端会话技术:
		Session

Cookie

概念

客户端会话技术,将 数据保存到客户端

快速入门

使用步骤

1. 创建Cookie对象,绑定数据
	* new Cookie(String name,String value)
2. 发送Cookie对象
	*response.addCookie(Cookie cookie)

3. 获取Cookie,拿到数据
	*Cookie[]   request.getCookies()

*在同一个浏览器先访问CookieDemo1,再访问CookieDemo2控制台打印数据。

  • 若是在一个浏览器访问CookieDemo1后,在另一个不同的浏览器访问CookieDemo2.控制台不会输出数据。

实现原理

基于响应头set-cookie和请求头cookie实现:

Cookie的细节

  1. 一次可不可以发送多个cookie?

    *可以
    可以创建多个Cookie对象,
    使用response调用多次addCookie方法发送cookie 即可。
    
  2. cookie可以在浏览器中保存多长时间?

     1. 默认情况下,当浏览器被关闭后,cookie数据被销毁。
     2. 持久化的存储:
     	* setMaxAge(int seconds)
     	   1. 正数:将cookie数据写到硬盘文件中,持久化储存。secons表示存活时间。
     	   2. 负数:默认值
     	   3. 零:删除cookie信息
    
  3. cookie能不能存中文?

     *在tomcat 8之前,cookie中不能直接储存中文数据
     	需要将中文数据转码--一般采用URL编码(%)
     *在tomcat 8之后,cookie支持储存中文数据
    
  4. cookie获取的范围是多大?

     1. 假设在同一个tomcat服务器中,部署了多个web项目,
       那么这些web项目中cookie能不能共享?
     -默认情况下cookie不能共享
     -由setPath(String path):设置cookie的获取范围,默认情况下为当前虚拟目录。
     -如果要共享则可以将path设置为"/"
    
     2.在不同的tomcat服务器间的cookie 共享问题?
     	setDomain(String path):如果设置一级域名相同,则多个服务器之间cookie可以共享
     	*setDomain(".baidu.coom"),那么tieba.baidu.com和news.baidu.com的cookie可以共享
    

Cookie的特点和作用

特点

1. cookie存储数据在客户端浏览器
2. 浏览器对于单个cookie的大小有限制(4kb)
	以及对同一个域名下的cookie数量也有限制 (20个)

作用

1. cookie一般用于存储少了的不太敏感的数据
2. 在不登录的情况下,完成服务器对客户端的身份识别
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值