Servlet学习笔记六——会话跟踪

来源:互联网 发布:安徽建筑大学网络教育 编辑:程序博客网 时间:2024/06/01 09:47

会话跟踪

首先,我们应该知道客户端与服务器之间进行通信的协议——HTTP协议是基于请求/相应模式、无状态的模式,就是说当服务器响应客户端的请求之后,连接就会被中断。所以我们在写java web程序的时候需要考虑怎么来唯一标识一个用户,这样服务器才好对不同的用户提供相应的服务。Java Servlet api使用session来跟踪会话,而我们可以使用三种方法来实现。

URL重写技术

为每一个sendRedirect()和页面跳转的地方分别使用HttpServletResponse接口中的encodeRedirectURL()和encodeURL()方法。
例如:
resp.sendRedirect(resp.encodeRedirectURL(“welcome”));
form标签里面的action=”+resp.encodeURL(“welcome”)+”;

cookie就是服务器发送给客户端用来实现会话跟踪的一项技术,客户端将cookie存储在浏览器的内存中,当客户端访问服务器的时候,浏览器将cookie当作消息报头也一起发送给服务器,服务器通过这个来识别用户。
设置cookie:
cookie的其他属性:Comment,Domain,Max-Age,Path,Version可以通过相应的setXXX()和getXXX()方法来获取和设置
public Cookie(String name,String value);
所以可以设置一个cookie,在程序的跳转逻辑的时候,判断cookie的值来决定到底跳转到那个地方去。

session

请求一个会话的时候,服务器端会自动分配一个session对象,而每一个session对象都有一个唯一的SessionID,这个SessionID会作为cookie来传给浏览器,然后服务器从cookie中取得SessionId来找到相应的Session对象。然后通过Session对象中所带的参数,实现相应的逻辑控制。
获取Session对象:public HtttpSession getSession()
设置/获取参数:Object get/setAttribute(String name)
使Session对象失效:public void invalidate();

0 0
原创粉丝点击