Servlet的会话跟踪
一、为什么需要会话跟踪?
由于http协议是一种无状态的协议,即一般情况下,在服务器相应客户端后,服务器就与客户端断开连接,这与普通的基于TCP/IP的协议是有区别的。而且我们需要对用户在访问同一web时进行跟踪,判断当前用户是否登录或者这个用户是不是在对同一个web应用在进行访问。
二、HttpSession:
HttpSession是Java web对用户进行会话跟踪的一个接口,而非是一个已经写好的类。
HttpSession由Servlet容器的提供者进行实现,如Tomcat、Jboss等。
HttpSession通过 HttpServletReques t的 getSession()或 getSession(boolean )方法获取:
getSession()如果会话没有被创建则创建一个新会话并返回,如果已存在一个会话,便将该会话返回给程序。
getSession(boolean )的参数如果为false,如果会话存在则返回,否则返回null;如果参数为true,则与第一个方法无区别。
HttpSession的常用方法:
String getID() 返回 包含分配给此对话对象的唯一标识符的字符串。
void invalidate() 使会话无效,然后取消对任何绑定到此会话的对象的绑定。
void setAttribute(String name , Object value) 使用指定名称将对象绑定到此对话。使用方式与map类似。
Object getAttribute(String name) 返回与此对话中的指定名称绑定在一起的对象。
void removeAttribute(String name) 从此会话中移除与指定名称绑定在一起的对象。
boolean isNew() 如果客户端还不知道该会话,或者客户端选择不加入该会话,则返回true,