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
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值