5.4.3 HttpRequestSession接口中的Session方法

优质
小牛编辑
128浏览
2023-12-01

在HttpRequestSession接口中也定义了若干和Session有关的方法,这些方法如下:  

1. getSession方法

getSession方法用于根据当前的请求返回HttpSession对象,该方法有两种重载形式,它们的定义如下:

public HttpSession getSession();

public HttpSession getSession(boolean create);

调用第一种重载形式时,如果在请求消息中包含SessionID,就根据这个SessionID返回一个HttpSession对象,如果在请求信息中不包含SessionID,就创建一个新的HttpSession对象,并返回它。在调用第二种重载方法时,如果create参数为true时,则等同于第一种重载形式。如果create为false时,当请求信息中不包含SessionID时,并不创建一个新的HttpSession对象,而是直接返回null。

2. isRequestedSessionIdValid方法

当请求消息中包含的SessionID所对应的HttpSession对象已经超过了有效时间,也就是说HttpSession对象无效,isRequestedSessionIdValid方法返回false。否则返回true(当请求消息中不包含SessionID时,isRequestedSessionIdValid返回false)。

3. isRequestedSessionIdFromCookie方法

isRequestedSessionIdFromCookie方法用于判断SessionID是否通过HTTP请求消息中的Cookie头字段传递过来的,如果该方法返回true,则表示SessionID是通过Coolie头字段发送到服务端的。

4. isRequestedSessionIdFromURL方法   

isRequestedSessionIdFromURL方法用于判断SessionID是否通过HTTP请求消息的URL请求参数传递过来的。在使用这个方法时要注意,还有一个isRequestedSessionIdFromUrl方法和这个方法的功能完全一样,只是最后的URL变成了Url。这个方法已经被加了@deprecated标记,也就是并不建议使用。因此,建议使用isRequestedSessionIdFromURL方法来实现这个功能。