会话技术
会话: 浏览器和服务器完成一系列交互. 浏览器第一次访问,到关闭浏览器.
会话的基础: 会话的双方都需要有 "记忆力".
cookie和session 是分别在浏览器和服务器端保存信息的技术.
//-------------------------------------------------------
Cookie
原理:
服务器通过发送Set-Cookie头.让浏览器保存.
浏览器使用Cookie头,将记住的信息提交到服务器.
操作:
Cookie cookie = new Cookie(key,value);
response.addCookie(cookie);
细节:
1. 过期时间.
默认: 会话结束.浏览器关闭
cookie.setMaxAge(num); 设置过期时间.
+n n秒后过期
0 发送到浏览器立即过期.(删除cookie时使用)
-1 默认值.
2.Cookie路径
默认: 发送cookie资源的所在路径.
规则: 如果访问的资源是cookie所在路径或自路径.cookie会被发送.
设置: cookie.setPath(path);
3.cookie的主机(域)
默认: 当前发送cookie的主机
设置: 只能设置主机为当前主机,或当前的一部分.
4.Cookie的覆盖(删除)
3点一致.
1>cookie的键
2>cookie的路径
3>cookie的主机
5.cookie中发送中文
HTTP协议的首行,头部分不支持中文编码.
如果需要发送中文应使用URL编码.
工具类:
URLEncoder 编码
URLDecoder 解码
--------------------------------------------------------------------------------
Session
概念:服务器端保存信息的技术.
原理:第一次访问服务器时,服务器会创建一个session对象,并产生SessionID与session对象对应.
在响应中,服务器将sessionid要求浏览器记住(cookie).
浏览器在之后的访问中,会携带sessionid访问.
服务器拿到浏览器带的sessionid,就可以找到与之对应的session对象.
操作:
getSession方法 => 发现是第一次来就创建新Session.
如果携带了sessionid ,就找对应的session.
操作数据: 4个操作域的方法.
session细节:
1>session的过期时间.
默认值为30分钟.
修改过期时间:
1.tomcat/conf/web.xml => <session-config>
2.项目/WEB-INF/web.xml=> <session-config>
3.session.setMaxInactiveInterval();
2>session中的其他api
session.invalidate(); => 立即销毁session.
3> session域的范围.
一次会话.
session对象的生命周期:
开始: 浏览器第一访问服务器,session对象被创建.
结束: 1.关闭浏览器
2.过期时间内没有访问session.session超时销毁.
3.手动销毁session
|
|