会话技术cookie
会话技术:一次会话中,包含多次请求和响应。
一次会话概念:浏览器第一次给服务器发送请求,会话建立,直到有一方断开为止,如浏览器断开或者服务器断开。
会话的功能:在一次会话的范围内的多次请求间共享数据。
方式:
-
客户端会话技术:cookie,把数据存在客户端
-
服务器端会话技术:session,把数据存到服务器端
Cookie:将数据保存在客户端的技术
一.Cookie使用步骤
1.创建cookie对象,绑定数据
New cookie(string name,string value)
3. 发送cookie对象
Response.addCookie(cookie,cookie)
4. 获取cookie对象,拿到数据
Cookie[] Requset.getcookie()
重点:
- 一次请求可以发送多个cookie
- Cookie的保存时间有两种情况,默认情况下,当浏览器关闭时,cookie被销毁。另一种情况是自己设定cookie的生命周期。
设置cookie生命周期方法:
SetMaxAge(int time) - 正数:将cookie数据写到硬盘文件中,cookie生命周期的秒数
- 负数:如果设置为零,则就是默认情况,浏览器关闭时,cookie销毁
- 零:删除cookie信息
- 在Tomcat8版本之前,cookie中不能直接存储中文,需要将中文数据进行转码,一般采用Url编码。Tomcat8版本之后可以直接存储中文,但是特殊字符还是不支持直接存储。建议使用URL编码来存储特殊字符。
- 如果在一个Tomcat服务器中部署了多个web项目,默认情况下cookie不能共享。可以使用setPath(string path)方法设置cookie的共享范围,默认情况下,设置的是当前项目的虚拟目录。设置为SetPath(“/”),则cookie的共享范围是整个服务器根目录
- 不同Tomcat服务器之间的cookie共享,通过这是SetDomain(string path),设置相同的一级域名,则cookie可以共享。如SetDomain(“.baidu.com”),那么tiba.baidu.com,zhidao.baidu.om,news.baidu.com域名cookie共享。
- Cookie特点:
存储数据在客户端,浏览器对于单个cookie的大小有限制的(4kb),同一域名下的cookie的总数量也有限制的(20个)。而且数据存储在客户端不安全,容易被篡改,所以cookie一般只存储少量和不太敏感的数据。
在不登录的情况下,利用cookie可以识别用户的身份