客户发同HTTP请求时,Servlet容器可以从HttpRequest对象中读取SessionID,然后根 据SessionID找到相应的HttpSession对象,从而获取客户的状态信息。
3.会话的创建和使用
--会话的创建
Servlet中的 HttpRequestServlet 对象为其提供了两种创建和获取HttpSession对象的方法
//为true时且存在会话则返回,否则创建一个并返回;为false时且存在会话则返回,否则返回null,不创建会话
HttpSession session=request.getSession(boolean value);
//等同于以上方法中的布尔参数值为true时的情况
HttpSession session=request.getSession();
--会话的使用
在javax.servlet.http.HttpSession接口中定义的方法,常用的是有关进行数据存储的方法
//把一个对象value保存在HttpSession对象中,并为其指定引用名称为name
session.setAttribute(String name,Object value);
//获取存在session中的数据
session.getAttribute(String name);
*此方法的返回值为Object,要进行数据类型转换,且与存入的数据类型一致,如:
String value=(String)session.getAttribute(String name);
4.HttpSession对象的存在周期
--HttpSession对象的创建
当客户端浏览器第一次访问服务器时,服务器为每个浏览器创建不同的HttpSession对象。在服务器端使用 request.getSession()方法来获得HttpSession对象,并以此来使用HttpSession接口为我们提供的方法。
--HttpSession对象的使用
void setAttribute(String name,Object value):进行数据的保存
Object getAttribute(String name):进行数据的读取
--HttpSession对象的结束
三种情况可以关闭session
*关闭浏览器,关闭session
*调用HttpSession的invalidate()方法,删除HttpSession对象和数据
*两次访问时间间隔大于session定义的非活动时间间隔
<