Servlet 中的HttpSession,HttpSession
对象用于会话管理。会话包含特定于整个应用中的特定用户的信息。当用户第一次通过request.getSession()
获得HttpSession
时进入网站(或在线应用)时,将为用户提供唯一 ID 以标识其会话。此唯一 ID 可以存储在 cookie 或请求参数中。
HttpSession
保持活动状态,直到它的使用时间超过部署描述符文件(web.xml
)中标签中指定的超时值。默认超时值为 30 分钟,如果未在标记中指定值,则使用此值。这意味着当用户未访问指定的 Web 应用时间时,会话将被 servlet 容器销毁。后续请求将不再从此会话提供,servlet 容器将创建新会话。
这是您创建HttpSession
对象的方法。
您可以使用setAttribute()
方法将用户信息存储到会话对象中,稍后在需要时可以从会话中获取此信息。这是您在会话中存储信息的方式。这里我们分别在属性名称为uName
,uemailId
和uAge
的会话中存储用户名,emailid
和userage
。
第一个参数是属性名称,第二个是属性值。对于例如uName
是属性名称,ChaitanyaSingh
是上面代码中的属性值。
要从会话中获取值,我们使用HttpSession
接口的getAttribute()
方法。这里我们使用属性名称获取属性值。
HttpSession
的方法
public void setAttribute(String name,Object value)
:使用名称绑定对象,并将名称/值对存储为 HttpSession 对象的属性。如果属性已存在,则此方法将替换现有属性。
public Object getAttribute(String name)
:从会话对象返回参数中指定的String
对象。如果未找到指定属性的对象,则getAttribute()
方法返回null
。
public Enumeration getAttributeNames()
:返回一个Enumeration
,其中包含作为会话对象的属性绑定的所有对象的名称。
public void removeAttribute(String name)
:从会话中删除给定的属性。
setMaxInactiveInterval(int interval)
:以秒为单位设置会话不活动时间。这是以秒为单位的时间,指定自客户端上次收到请求后会话保持活动状态的时间。
会话示例
index.html
MyServlet1.java
MyServlet2.java
web.xml
输出:
第一个界面:
点击提交后:
点击查看详细信息后: