文章目录
一、会话技术
会话:指一次会话中包含多次请求和响应。
一次会话:浏览器第一次给服务器资源发送请求,会话建立,直到有一方断开为止(这个断开指浏览器关闭了、或者服务器关闭了)。
会话功能:在一次会话的范围内的多次请求间共享数据。
会话的两种方式:客户端会话技术Cookie 、服务器端会话技术Session。
1.1 Cookie
Cookie 是客户端会话技术,它将数据保存在客户端(如浏览器)。Cookie会话技术基于响应头 set-cookie
和请求头 cookie
实现。
快速入门
- 创建Cookie对象,绑定数据:
new Cookie(String name, String value)
- 发送Cookie对象:
response.addCookie(Cookie cookie)
- 获取Cookie,拿到数据:
Cookie[] request.getCookies()
细节使用
问题 | 解决 |
---|---|
可以一次发送多个cookie吗? | 可以。 可以通过创建多个Cookie对象,使用response调用多次addCookie()方法发送cookie。 |
cookie能浏览器中保存多长时间? | 默认情况下,当浏览器关闭后,cookie数据被销毁。 也可持久化存储,通过 setMaxAge(int expiry) 实现。1. expiry为正数:将cookie数据写到硬盘的文件中,持久化存储,并指定cookie存活时间,时间到后,cookie文件自动失效; 2. expiry为负数:默认值; 3. expiry等于零:意味着删除该cookie键。 |
cookie能不能存放中文? | 在Tomcat 8 之前(Tomcat 7 及以下版本)不能直接存储中文,需要将中文转码(URL编码存储,URL解码解析)。 Tomcat 8 之后,cookie支持中文数据,但不包括特殊字符。 |
cookie获取范围多大? 1. 假设在一个tomcat服务器中,部署了多个web项目,那么在这些web项目中cookie能不能共享? 2. 不同的tomcat服务器间能实现cookie共享吗? |
1. 默认情况下cookie不能共享。但也可以手动设置 setPath("/") 。2. 如果设置一级域名相同,那么多个服务器之间cookie可以共享 setDomain(String path) 。 |
Cookie的特点
- Cookie数据存储在客户端浏览器;
- 浏览器对于单个Cookie的大小有限制(4kb),且对同一个域名下的总Cookie数量也有限制(20个)。
Cookie的作用
- Cookie一般用于存储少量的不太敏感的数据;</