session会话跟踪的一个小例子
?
?
?内容包括:
?
?
? 必备知识:
?
?? 会话跟踪实现主要有3种方式:
?
a. SSL 这种方式我们 先不研究
b. cookies
?
?????会话跟踪 的实现 可以基于 会话cookie,这种cookie?是在浏览器内存中的 名字必须叫jsessionid,?如果浏览器禁用了cookie?那服务器端就不能跟踪会话了?,就要采用url重写???
??
???如果客户端没禁止cookie ,也可以吧cookie 保存在客户端的硬盘上 ,这种cookie是持久cookie?,用户在每次访问一个url的时候 浏览器会吧这个url域下的cookie发到服务器上,服务器根据自己关心的cookie的名字来跟踪会话。迅雷看看记录播放历史就是这样干的
?
?
c. URL 重写
??? 就是在所有的页面跳转上加上 encodeURL() 或者 encodeRedirectURL(),之中方式是由于容器在处理动态页面或者action的时候会自动添加 ;jsessionid=?????? 的字符串 来标示会话,对于静态页面就无能为力了,不过我们可以吧静态页面改造成动态页面来解决 比如吧11.htm 改成tt.jsp
?
?
测试项目结构:
?
?
?
例子1:使用会话cookie 和URL重写 追踪会话 需要的3个servlet
LoginServlet? 使用会话cookie 会话跟踪的servlet
GreetServlet??使用会话cookie 登陆后打印会话信息
LogoutServlet??使会话失效
?
结论:如果客户端没禁止cookie 会话跟踪成功,如果客户端禁止了cookie.则每次都是新的会话,会话跟踪失败
?
iE 禁止cookie
?
?
访问 登陆servlet 看到IE 下面的提示: 红色的部分标示IE拒绝了回话cookie
?
?
?
对于这种方式我们就只好用URL重写了 ,重写以后再访问登陆页面 发现后面已经有了服务器生成的 jsessionid, 浏览器和服务器就可以使用这个标识来传递会话了
?
?
例子2:使用持久cookie(保存在用户的硬盘上)追踪会话 需要的2个 servlet?
?
LoginServlet2
GreetServlet2?
?
?
?附件中试测试源码
?
?
?
1 楼 苹果超人 2010-10-18 学习。。。压缩包的密码多少啊?