Servlet中session的应用

Servlet中session的应用
跟踪用户信息的Servlet对象为javax.servlet.HttpSession,创建该对象的方法是使用HttpServletRequest的getSession().具体格式为:
HttpSession session=request.getSession(true);
该方法如果参数值为true,表示会话存在时返回会话对象,当会话不存在时就创建一个新的会话;如果参数值为false,表示当会话存在时就返回会话对象,当会话不存在时就返回null.

HttpSession是Java平台对session机制的实现规范,因为它仅仅是个接口,具体到每个web应用服务器的提供商,除了对规范支持之外,仍然会有一些规范里没有规定的细微差异。   
一般情况下,session都是存储在内存里,当服务器进程被停止或者重启的时候,内存里的session也会被清空,如果设置了session的持久化特性,服务器就会把session保存到硬盘上,当服务器进程重新启动或这些信息将能够被再次使用。复制严格说来不算持久化保存,因为session实际上还是保存在内存里,不过同样的信息被复制到各个cluster内的服务器进程中,这样即使某个服务器进程停止工作也仍然可以从其他进程中取得session。cookie生存时间的设置则会影响浏览器生成的cookie是否是一个会话cookie。默认是使用会话cookie。有兴趣的可以用它来试验我们在第四节里提到的那个误解。   HttpSession类它提供了setAttribute()和getAttribute()方法存储和检索对象。HttpSession提供了一个会话ID关键字,一个参与会话行为的客户端在同一会话的请求中存储和返回它。servlet引擎查找适当的会话对象,并使之对当前请求可用。HttpServletRequest 接口提供了以下方法来获取HttpSession实例。   
public HttpSession getSession() :该方法取得请求所在的会话。   
public HttpSession getSession(Boolean create):返回当前请求的会话。如果当前请求不属于任何会话,而且create参数为true,则创建一个会话,否则返回null。此后所有来自同一个的请求都属于这个会话,通过它的getSession返回的是当前会话。   

public void setAttribute(String name,Object value)   将value对象以name名称绑定到会话   
public object getAttribute(String name)   取得name的属性值,如果属性不存在则返回null   
public void removeAttribute(String name)   从会话中删除name属性,如果不存在不会执行,也不会抛处错误.   
public Enumeration getAttributeNames()   返回和会话有关的枚举值   public void invalidate()   使会话失效,同时删除属性对象   
public Boolean isNew()   用于检测当前客户是否为新的会话   
public long getCreationTime()   返回会话创建时间   
public long getLastAccessedTime()   返回在会话时间内web容器接收到客户最后发出的请求的时间   
public int getMaxInactiveInterval()   返回在会话期间内客户请求的最长时间.秒   
public void setMaxInactiveInterval(int seconds)   允许客户客户请求的最长时间   
ServletContext getServletContext()   返回当前会话的上下文环境,ServletContext对象可以使Servlet与web容器进行通信   
public String getId()   返回会话期间的识别号

你可能感兴趣的:(Java开发,servlet,java,cookic,session)