会话管理:管理浏览器客户端和服务器之间会话过程中产生的数据.
Cookie技术:会话技术保存在浏览器客户端。
Session技术:会话数据保存在服务器端。
Cookie核心技术##
Cookie技术:会话技术保存在浏览器客户端。
- 构造Cookie对象
Cookie.(java.lang.String name, java.lang.String value) ```
2. 设置Cookie
设置Cookied的有效访问路径
void setPath(java.lang.String uri) ```
有效路径指的是cookie的有效路径保存在哪里,那么浏览器在有效路径下访问服务器就会带着cookie信息,否则不带cookie信息。
设置Cookie的有效时间
void setMaxAge(int expiry)
正整数:表示cookie数据保存到cookie数据的缓存目录(硬盘中),数值表示保存的时间。
负整数:表示cookie数据保存到浏览器内存中,浏览器关闭,cookie丢失。
零:表示删除同名的cookie数据。
设置Cookie的值
void setValue(java.lang.String newValue)
- 发送Cookie到浏览器端保存
void response。addCookie(Cookie cookie)
- 服务器接收Cookie
Cookie[] request.getCookies()
Cookie原理
- 服务器创建cookie对象,把会话数据存储到cookie对象中。
new Cookie("name","value");
- 服务器发送cookie信息到浏览器
response.addCookie(cookie);```
3. 浏览器得到服务器发送的cookie,然后保存在浏览器端
4. 浏览器在下次访问服务器时,会带着cookie信息
5. 服务器收到浏览器带的cookie信息
request.getCookie();```
注意:cookie数据类型只能保存非中文字符串类型。可以保存多个cookie,但是浏览器一般只允许存放300个cookie,每个站点最多存放20个cookie,每个cookie的大小限制为4KB。
举例
/**
* 1.创建Cookie对象
*/
Cookie cookie = new Cookie("name","eric");
/**
* 2.服务器发送Cookie信息到浏览器
*/
response.addCookie(cookie);
/**
* 3.浏览器发送Cookie到服务器
*/
Cookie[] cookies = request.getCookies();
if(cookies!=null){
for(Cookie c:cookies){
String name = c.getName();
String value = c.getValue();
System.out.println(name+"="+value);
}
}else{
System.out.println("没有Cookie信息");
}
**运行结果:
第一次访问.jpg第一次访问1.jpg 服务器发送Cookie信息到浏览器.jpg 第二次访问.jpg
网友评论