与介绍cookie技术一样,首相我们要知道什么是session技术?
session技术是将数据存储在服务器端的技术,会为每个客户端都创建一块内存空间 存储客户的数据,但客户端需要每次都携带一个标识ID去服务器中寻找属于自己的内 存空间。所以说Session的实现是基于Cookie,Session需要借助于Cookie存储客 户的唯一性标识JSESSIONID。
接下来通过三个问题来介绍session
1.怎样获得属于本客户端的session对象(内存区域)?
2.怎样向session中存取数据(session也是一个域对象)?
3.session对象的生命周期?
1.获得session对象:
HttpSession session=request.getSession();
此方法会获得专属于当前会话的Session对象,如果服务器端没有该会话的Session 对象会创建一个新的Session返回,如果已经有了属于该会话的Session直接将已有 的Session返回(实质就是根据JSESSIONID判断该客户端是否在服务器上已经存在 session了)。
2.怎样向session中存取数据(session也是一个域对象)
session也是一个存取数据的区域对象,所以session对象也具有下面三个方法:
1)session.setAttribute(String name, Object obj);
2)session.getAttribute(String name);
3)session.remove(String name);
3.session对象的生命周期
创建时间:第一次执行request.getSession()时创建,即客户端第一次访问服务器资源时。
销毁时间:1)服务器(非正常)关闭时;
2)session过期/失效(默认30分钟)
session的有效时间的起算点是:从不操作服务端资源开始计时。
可以在工程的web.xml中进行配置。
<session-config>
<session-timeout>30</session-timeout>
</session-config>
3)手动销毁:session.invalidate()。4.session的作用范围:默认在一次会话中,也就是说,一次回话中任何资源公用一个session对象。