您的位置:首页 > 理论基础 > 计算机网络

Servlet--HttpSession接口,HttpSessionContext接口,Cookie类

2015-06-15 16:36 597 查看
HttpSession接口

定义

public interface HttpSession


这个接口被 Servlet 引擎用来实现在 HTTP 客户端和 HTTP 会话两者的关联。这种关联可能在多外连接和请求中持续一段给定的时间。session 用来在无状态的 HTTP 协议下越过多个请求页面来维持状态和识别用户。一个 session 可以通过 cookie 或重写 URL 来维持。

方法

1、getCreationTime

public long getCreationTime();

返回建立 session 的时间,这个时间表示为自 1970-1-1 日(GMT)以来的毫秒数。

2、getId

public String getId();

返回分配给这个 session 的标识符。一个 HTTP session 的标识符是一个由服务器来建立和维持的唯一的字符串。

3、getLastAccessedTime

public long getLastAccessedTime();

返回客户端最后一次发出与这个 session 有关的请求的时间, 如果这个 session 是新建立的,返回-1。这个时间表示为自 1970-1-1 日(GMT)以来的毫秒数。

4、getMaxInactiveInterval

public int getMaxInactiveInterval();

返加一个秒数,这个秒数表示客户端在不发出请求时,session 被 Servlet 引擎维持的最长时间。在这个时间之后,Servlet 引擎可能被 Servlet 引擎终止。如果这个 session 不会被终

止,这个方法返回-1。当 session 无效后再调用这个方法会抛出一个 IllegalStateException。

5、getValue

public Object getValue(String name);

返回一个以给定的名字绑定到 session 上的对象。如果不存在这样的绑定,返回空值。当 session 无效后再调用这个方法会抛出一个 IllegalStateException。

6、getValueNames

public String[] getValueNames();

以一个数组返回绑定到 session 上的所有数据的名称。当 session 无效后再调用这个方法会抛出一个 IllegalStateException。

7、invalidate

public void invalidate();

这个方法会终止这个 session。所有绑定在这个 session 上的数据都会被清除。并通过HttpSessionBindingListener 接口的 valueUnbound 方法发出通告。

8、isNew

public boolean isNew();

返回一个布尔值以判断这个 session 是不是新的。 如果一个 session 已经被服务器建立但是还没有收到相应的客户端的请求,这个 session 将被 认为是新的。这意味着,这个客户端

还没有加入会话或没有被会话公认。在他发出下一个请求时还不能返回适当的 session 认证信息。当 session 无效后再调用这个方法会抛出一个 IllegalStateException。

9、putValue

public void putValue(String name, Object value);

以给定的名字,绑定给定的对象到 session 中。已存在的同名的绑定会被重置。这时会调用 HttpSessionBindingListener 接口的 valueBound 方法。当 session 无效后再调用这个方法会抛出一个 IllegalStateException。

10、removeValue

public void removeValue(String name);

取消给定名字的对象在 session 上的绑定。如果未找到给定名字的绑定的对象,这个方法什么出不做。 这时会调用 HttpSessionBindingListener 接口的 valueUnbound 方法。当 session 无效后再调用这个方法会抛出一个 IllegalStateException。

11、setMaxInactiveInterval

public int setMaxInactiveInterval(int interval);

设置一个秒数,这个秒数表示客户端在不发出请求时,session 被 Servlet 引擎维持的最长时间。以下这个方法将被取消\

12、getSessionContext

public HttpSessionContextgetSessionContext();


返回 session 在其中得以保持的环境变量。 这个方法和其他所有 HttpSessionContext 的方法一样被取消了。

HttpSessionContext接口

定义

此接口将被取消

public interface HttpSessionContext

这个对象是与一组 HTTP session 关联的单一的实体。

这个接口由于安全的原因被取消, 它出现在目前的版本中仅仅是为了兼容性的原因。 这个接口的方法将模拟以前的版本的定义返回相应的值。

方法

1、getSession

public HttpSession getSession(String sessionId);

当初用来返回与这个 session id 相关的 session。现在返回空值。

2、getIds

public Enumeration getIds();

当初用来返回这个环境下所有 session id 的列表。现在返回空的列表。

Cookie 类

定义

public class Cookie implements Cloneable

这个类描述了一个 cookie,有关 cookie 的定义你可以参照 Netscape Communications

Corporation 的说明,也可以参照 RFC 2109。

构造函数

public Cookie(String name, String value);

用一个 name-value 对定义一个 cookie。这个 name 必须能被 HTTP/1.1 所接受。以字符$开头的 name 被 RFC 2109 保留。给定的 name 如果不能被 HTTP/1.1 所接受,该方法抛出一个 IllegalArgumentException 。

方法

1、getComment

public String getComment();

返回描述这个 cookie 目的的说明,如果未定义这个说明,返回空值。

2、getDomain

public String getDomain();

返回这个 cookie 可以出现的区域,如果未定义区域,返回空值。

3、getMaxAge

public int getMaxAge();

这个方法返回这个 cookie 指定的最长存活时期。如果未定义这个最长存活时期,该方

法返回-1。

4、getName

public String getName();

该方法返回 cookie 名。

5、getPath

public String getPath();

返回这个 cookie 有效的所有 URL 路径的前缀,如果未定义,返回空值。

6、getSecure

public boolean getSecure();

如果这个 cookie 只通过安全通道传输返回真,否则返回假。

7、getValue

public String getValue();

该方法返回 cookie 的值。

8、getVersion

public int getVersion();

返回 cookie 的版本。版本 1 由 RFC 2109 解释。版本 0 由 Netscape CommunicationsCorporation 的说明解释。新构造的 cookie 默认使用版本 0。

9、setComment

public void setComment(String purpose);

如果一个用户将这个 cookie 提交给另一个用户,必须通过这个说明描述这个 cookie 的目的。版本 0 不支持这个属性。

10、setDomain

public void setDomain(String pattern);

这个方法设置 cookie 的有效域的属性。这个属性指定了 cookie 可以出现的区域。一个有效域以一个点开头(.foo.com) ,这意味着在指定的域 名解析系统的区域中(可能是www.foo.com 但不是 a.b.foo.com)的主机可以看到这个 cookie。默认情况是,cookie 只能返回保 存它的主机。

11、setMaxAge

public void setMaxAge(int expiry);

这个方法设定这个 cookie 的最长存活时期。在该存活时期之后,cookie 会被终目。负数表示这个 cookie 不会生效,0 将从客户端删除这个 cookie。

12、setPath

public void setPath(String uri);

这个方法设置 cookie 的路径属性。客户端只能向以这个给定的路径 String 开头的路径返回 cookie。

13、setSecure

public void setSecure(boolean flag);

指出这个 cookie 只能通过安全通道(例如 HTTPS)发送。只有当产生这个 cookie 的服务器使用安全协议发送这个 cookie 值时才能这样设置。

14、setValue

public void setValue(String newValue);

设置这个 cookie 的值,对于二进制数据采用 BASE64 编码。版本 0 不能使用空格、{}、()、= 、,、 “”、/、?、@ 、 :以及; 。

15、setVersion

public void setVersion(int v);

设置 cookie 的版本号

HttpSessionBindingEvent类

定义

public class HttpSessionBindingEventextends EventObject

这 个 事 件 是 在 监 听 到 HttpSession 发 生 绑 定 和 取 消 绑 定 的 情 况 时 连 通HttpSessionBindingListener 的。这可能是一个 session 被终止或被认定无效的结果。事件源是 HttpSession.putValue 或 HttpSession.removeValue。

构造函数

public HttpSessionBindingEvent(HttpSession session, String name);

通过引起这个事件的 Session 和发生绑定或取消绑定的对象名构造一个新的HttpSessionBindingEvent。

方法

1、getName

public String getName();

返回发生绑定和取消绑定的对象的名字。

2、getSession

public HttpSession getSession();

返回发生绑定和取消绑定的 session 的名字。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: