huangfox

冰冻三尺,非一日之寒!

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

(一)会话跟踪机制

java Servlet使用session来跟踪和管理会话内的状态。利用session,服务器可以把一个客户的所有请求联系起来,并记住客户的操作状态。

当客户第一次连接到服务器时,服务器为其建立一个session对象,并分配给客户一个唯一的标识(sessionID),以后客户每一次请求都要将这个标识一起提交。

服务器根据这个特定的标识找到特定的session对象,读取或者记录用户的信息。

有三种机制用于会话跟踪:

1)SSL

2)Cookies

3)URL重写

 

(二)Cookies——小甜饼

Cookies的种类繁多:Session Cookie 、 Persitent Cookie、Secure Cookie、HttpOnly Cookie、Third-part Cookie等。

这里我们重点关注Session Cookie。

A session cookie only lasts for the duration of users using the website. A web browser normally deletes session cookies when it quits. A session cookie is created when no Expires directive is provided when the cookie is created.【from WIKI】

从(一)里面可以知道,会话跟踪机制其实就是服务端给用户一个“会员卡”,用户每次请求时携带这张卡片。

将Cookies应用于会话跟踪机制,其实就是用Cookie记录会员卡号,那么Cookie理所当然就成为了“会员卡”。

 

(三)URL重写

浏览器有时候会拒绝甜饼(禁用Cookie),这时可以使用URL重写机制来完成了。

URL重写就是在url中附加标识客户的sessionID,servlet容器负责解析出sessionID,根据sessionID将请求与特定的session关联。

 

(四)Java Servlet API的会话跟踪

javax.servlet.http.HttpSession接口封装了session的概念,具体的Servlet容器提供了这个接口的实现。

其方法包括:

note:session只是服务端一种会话跟踪的方式,其依赖于Cookie机制(或者URL重写中的sessionID,原理一致!)。

java servlet中的HttpSession接口实现了这个思想,交由具体的容器实现。

javax.servlet.http.Cookie类的主要方法如下。

在servlet规范中,用于会话跟踪的Cookie的名字是JSESSIONID(该Cookie保存识别不同用户session的id),他通常保存在浏览器内存中,

当浏览器关闭后就删除,不能在多个浏览器间共享。

同样在servlet规范中,url重写机制中传递session id的参数名称为:jsessionid

 

 

 

 

posted on 2011-10-21 15:45  huangfox  阅读(2406)  评论(0编辑  收藏  举报