标签:
1.session的生命周期
session是服务器用于标识客户端用户信息以判断是否为同一用户,它被保存在服务器内存中以便于高速存取
-- session的创建
session在用户第一次访问jsp/servlet时由服务器创建,对于html等页面可以调用request.getSession(true)强制生成
-- session的销毁
服务器对于长时间没有活动的session从服务器内存中清除掉而是session失效,如tomcat服务器的默认时间是20分钟
也可以手动来使session失效,方法是调用session的invalidate()方法(validate的意思为使生效,invalidate的意思为使失效)
2.session对于浏览器的要求
虽然session保存在服务器中,但它的正常运行依然需要浏览器的支持,这是因为http的一次连接特性使得session不能够通过http连接来判断是否是同一用户
-- 使用cookie作为识别标志
服务器端通过向浏览器发送一个jsessionid的cookie,session依据该cookie中保存的session id来识别是否为同一用户
该cookie由服务器自动生成,仅当前浏览器内窗口/通过链接打开的子窗口有效,对于其他的浏览器窗口不共享,关闭浏览器则会失效
--cookie被禁用或不支持cookie的手机浏览器的情况
URL地址重写的解决方案:
将客户端用户的session的id信息重写到URL地址中,服务器通过解析URL地址来获得session的id
HttpServletResponse类提供了encodeURL(String url)方法类实现URL地址重写功能,即原先的请求地址url改为response.encodeURL(url)
标签:
原文地址:http://www.cnblogs.com/cy827/p/4757002.html