会话跟踪

Java Servlet API使用Session来跟踪会话和管理会话内的状态。 唯一的标识(Session ID)
在Servlet规范中,支持下列三种机制用于会话跟踪:
●SSL(Secure Socket Layer,安全套接字层)会话
●Cookies
●URL重写

1 SSL会话
SSL是一种运行在TCP/IP之上和像HTTP这种应用层协议之下的加密技术。SSL是在HTTPS协议中使用的加密技术。在建立了加密连接的过程中,客户和服务器都可以产生名叫“会话秘钥”的东西,它是一种用于加密和解密消息的对称的秘钥,基于HTTPS协议的服务器可以使用这个客户的对称秘钥来建立会话。
2 Cookies
Cookies,中文译为小甜饼,是一种由服务器发送给客户的片段信息,存储在客户端浏览器的内存中或硬盘上,在客户随后对该服务器的请求中发回它。
Cookies以键-值对的方式记录会话跟踪的内容,服务器利用响应报头Set-Cookie来发送Cookie信息,在RFC2109中的格式为:
Set_Cookie:NAME=VALUE;Comment=value;Domain=value;Max-Age=value;Path=value;Secure;Version=1*DIGIT
NAME时Cookie的名字,VALUE是它的值。NAME=VALUE属性-值对必须首先出现,在此之后的属性-值对可以以任何顺序出现。在Servlet规范中,用于会话跟踪的Cookie的名字必须是JSESSIONID
3 URL重写
当用户不接受Cookie的时候,可以使用URL重写的机制来跟踪用户的会话。URL重写就是在URL中嵌入标识客户的Session ID,Servlet容器解释URL,取出Session ID,根据Session ID将请求与特定的Session关联。
要跟踪客户端的会话,就需要将所有发往客户端的URL进行编码,这可以通过调用HttpServletResponse接口中的encodeURL()方法和encodeRedirectURL()方法来实现,其中,encodeRedirectURL()方法主要是在调用sendRedirect()方法之前使用。

1 HttpSession接口
public java.lang.Object getAttribute(java.lang.String name)
public java.util.Enumeration getAttributeNames()
public void removeAttribute(java.lang.String name)
public void setAttribute(java.lang.String name,java.lang.Object value)
2 Session的生命周期
3 Cookie的应用
⒈Cookie类
public Cookie(java.lang.String name,java.lang.String value)
用指定的名字和值构造一个Cookie
public void setComment(java.lang.String purpose)
public java.lang.String getComment()
用于设置和获取Set-Cookie响应报头的Comment属性
⒉Session和Cookie的深入研究
Session是一种服务端技术,Session对象在服务器端创建,通常采用散列表来存储信息,例如,Tomcat的Session实现采用HashMap对象来存储属性名和属性值。
Session与Cookie的最大区别是——Session在服务端保存信息,Cookie在客户端保存信息。
对于存储在内存中的Cookie,是不能被不同的浏览器进程所共享的。共享只能发生在同一个浏览器进程的不同窗口中(因为这些窗口共享同一个进程地址空间)。对于保存在硬盘上的Cookie,因为是在外部的存储设备中存储,所以可以在对多个浏览器进程间共享。
4 HttpSessionBindingListener接口
如果一个对象实现了HttpSessionBindingListenner接口,当这个对象被绑定到Session中或者从Session中被删除时,Servlet容器会通知这个对象,而这个对象在接收到通知后,可以做一些初始化或清除状态的操作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值