5.4.3 HttpRequestSession接口中的Session方法
在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方法来实现这个功能。