概念
会话
一次会话包含多次请求和响应。
一次会话:浏览器第一次给服务器资源发送请求,会话建立,直到有一方断开为止。
功能
在一次会话范围内的多次请求间,共享数据
方式
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的细节
-
一次可不可以发送多个cookie?
*可以 可以创建多个Cookie对象, 使用response调用多次addCookie方法发送cookie 即可。
-
cookie可以在浏览器中保存多长时间?
1. 默认情况下,当浏览器被关闭后,cookie数据被销毁。 2. 持久化的存储: * setMaxAge(int seconds) 1. 正数:将cookie数据写到硬盘文件中,持久化储存。secons表示存活时间。 2. 负数:默认值 3. 零:删除cookie信息
-
cookie能不能存中文?
*在tomcat 8之前,cookie中不能直接储存中文数据 需要将中文数据转码--一般采用URL编码(%) *在tomcat 8之后,cookie支持储存中文数据
-
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. 在不登录的情况下,完成服务器对客户端的身份识别