许多应用都须要一个客户端的多个请求是相互关联。例如,一个web程序能在多个请求间保存用户的状态。基于web的应用程序都有维护这些状态的能力,由于HTTP是无状态的。为了支持这些,web应用程序须要维护状态,servlet技术提供了管理session的api,而且有几种实现会话的机制。java
session表明一个HttpSession对象。你能够经过请求的getSession方法访问session。这个方法返回关联到当前请求的session对象,或者,若是当前请求尚未session,这个方法会生成一个。web
你能够经过名称关联对象-值属性到session。这些属性能够被同一个web上下文处理同一个session的请求访问。
注意,你的应用程序能够通知web上下文和servlet生命周期(Handling Servlet Lifecycle Events)中的session监听器。 您还能够通知与会话关联的某些事件的对象,例如如下内容:api
由于HTTP客户端没有方法去标记是否再也不须要一个session。每个session都关联了一个超时时间,以便于资源的回收利用。这个超时阶段能够经过session的getMaxInactiveInterval 和setMaxInactiveInterval方法访问。服务器
要使用NetBeans集成开发环境在部署描述符中设置超时时间,请按照下列步骤操做。cookie
要将session与用户关联,web容器有几种方法,它们都须要在客户端与服务器直接传一个惟一标识。这个惟一标识在客户端做为一个cookie维护,或者web组件在返回客户端的每个响应中包含这个惟一标识。
若是你的应用使用了session对象, 您必须确保在客户端关闭cookie时让应用程序重写URL,从而启用会话跟踪。你能够经过调用全部servlet的响应的encodeURL方法来实现。只有当cookie无效时,这个方法才在url中包含惟一标识;从另外一个角度讲,这个方法返回的url不会改变。session