会话跟踪的四种方法

来源:互联网 发布:身份证校验算法 js 编辑:程序博客网 时间:2024/04/28 23:31

由于HTTP事务是无状态的,因此必须采取特殊措施是服务器在系列事务期间能继续确定和记住特定用户。
实现此功能有两种基本方式:
一是让客户端记住所有会话的相关数据并在必要时发回到服务器
二时服务器保持所有数据,对其设置一个标识,让客户端记住该标识
第二种方法更好,实现它的技术有四种:
用隐藏字段(<input type="hidden">):非常适合步需要大量数据存储的会话应用。
具体使用??

URL重写:URL可以在后面附加参数,和服务器的请求一起发送,这些参数为名字/值对。如:http://server/mypage.jsp?name1=value1&name2=value2.JSP页面检索请求时,可以如下读取参数值,String value1=request.getParameter("name1");String value2=request.getParameter("name2");。此技术可以确保所有浏览器中有效,但是保存大量数据,此技术会降低性能。而且这样的URL是不安全的,不过对于简单应用,URL重写是可信赖的,也很容易实现。注意,通常不会手工向超级链接URL中附加参数,更常见的是使用HTTP会话API执行URL重写,这样,只要附加一个会话ID。

Cookie:一个Cookie是一个小的,已命名数据元素。服务器使用SET-Cookie头标将它作为HTTP响应的一部分传送到客户端,客户端被请求保存Cookie值,在对同一服务器的后续请求使用一个Cookie头标将之返回到服务器。与其它技术比较,Cookie的一个优点是在浏览器会话结束后,甚至在客户端计算机重启后它仍可以保留其值。
具体使用方法??

Session:
使用setAttribute(String str,Object obj)方法将对象捆绑到一个会话(在会话中可以保存任意类型的对象,但因为会话可能被序列化,最好让会话对象实现java.io.Serializable接口;
使用getArrtibute(String str)方法从一个会话中检索对象;
使用removeAttribute(String str)方法从一个会话中销毁对象;
使用setMaxInactiveInteral()方法设置会话的有效期,默认为30分钟(在web.xml中配置);
使用invalidate()方法将会话所有捆绑的对象解缚。 

原创粉丝点击