Servlet Session简介说明
Session简介
Session是服务器端的概念,只有服务器端才有Session的信息Session的作用用于标识Web客户端
Session标识客户端的原理
----当客户端支持Cookie时Session主要借助于Cookie同客户端进行关联,
Web容器会为每个客户端分配一个唯一的Session会话ID,并这个标识作为Cookie信息存于客户端中,后续客户端通过借助这个Cookie向服务器表明自己的身份
当客户端不支持Cookie时
我们可通过在html页面中创建一个隐藏域,然后存储SessionId,如下所示:
<input type="hidden" name="sessionid" value="9112472425252">在每次get请求或post请求时,将此值提交给服务器,
并通过此值来标识客户端的身份
HttpSession对象
Servlet容器对外提供了HttpSession 接口,此接口可生成客户端标识,可通过此接口识别用户
我们在编写Servlet代码时,可使用此接口创建Http客户端和服务端之间的Session会话
如:
Servlet中获取HttpSession对象的方法
HttpSession session = request.getSession();HttpSession拥有以下常用的方法,如下所示:
序号 | 方法 & 描述 |
---|---|
1 | public Object getAttribute(String name) 该方法返回在该 session 会话中具有指定名称的对象,如果没有指定名称的对象,则返回 null。 |
2 | public Enumeration getAttributeNames() 该方法返回 String 对象的枚举,String 对象包含所有绑定到该 session 会话的对象的名称。 |
3 | public long getCreationTime() 该方法返回该 session 会话被创建的时间,自格林尼治标准时间 1970 年 1 月 1 日午夜算起,以毫秒为单位。 |
4 | public String getId() 该方法返回一个包含分配给该 session 会话的唯一标识符的字符串。 |
5 | public long getLastAccessedTime() 该方法返回客户端最后一次发送与该 session 会话相关的请求的时间自格林尼治标准时间 1970 年 1 月 1 日午夜算起,以毫秒为单位。 |
6 | public int getMaxInactiveInterval() 该方法返回 Servlet 容器在客户端访问时保持 session 会话打开的最大时间间隔,以秒为单位。 |
7 | public void invalidate() 该方法指示该 session 会话无效,并解除绑定到它上面的任何对象。 |
8 | public boolean isNew() 如果客户端还不知道该 session 会话,或者如果客户选择不参入该 session 会话,则该方法返回 true。 |
9 | public void removeAttribute(String name) 该方法将从该 session 会话移除指定名称的对象。 |
10 | public void setAttribute(String name, Object value) 该方法使用指定的名称绑定一个对象到该 session 会话。 |
11 | public void setMaxInactiveInterval(int interval) 该方法在 Servlet 容器指示该 session 会话无效之前,指定客户端请求之间的时间,以秒为单位。 |
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。