Session(会话)的三种创建方式

Session(会话)

(1)session是什么?

服务器为了保存用户状态而创建的一个特殊的对象,该对象一般称之为
session对象。

(2)session工作原理

当浏览器第一次访问服务器时,服务器会创建一个session对象
(该对象有一个唯一的id,一般称之为sessionId),接下来服务器
会将sessionId以cookie的方式发送给浏览器。
当浏览器再次访问服务器时,会将sessionId发送过来,服务器
就可以利用sessionId找到对应的session对象。

(3)如何获得session对象?

方式一:

HttpSession s = request.getSession(true);
注:
	当flag为true时,先查看请求当中是否有sessionId,如果没有
sessionId,则创建一个session对象;如果有sessionId,则
依据该sessionId去查找对应的session对象,如果找到了,则
返回该session对象,如果没有找到,则创建一个新的session对象。

方式二:

HttpSession s = request.getSession(false);
注:
	当flag为false,先查看请求当中是否有sessionId,如果没有,
返回null;如果有sessionId,则依据该sessionId去查找对应的
session对象,如果找到了,则返回该session对象,如果没有找到,
返回null。

Session(会话)的三种创建方式_第1张图片

方式三:

HttpSession s = request.getSession();
等价于 request.getSesion(true)。实际工作中一般常用这个。

(4)使用session进行状态管理

a.将数据绑订到session对象上:
	session.setAttribute(String name,Object obj);
b.依据绑订名获得绑订值:
	Object session.getAttribute(String name);
c.解除绑订:
	session.removeAttribute(String name);

(5)session超时

a.什么是session超时?

服务器会把空闲时间过长的session对象从内存当中删除。
为了节省内存空间。
注:
	空闲时间一般是半个小时。

b.如何修改超时时间长度?

方式一: 修改web.xml
	
    	30
	
注:
	每一个web应用都有一个web.xml,另外,容器也有一个
	web.xml。

方式二: session.setMaxInactiveInterval(int seconds);
注:
	用于设置两次请求之间最大的间隔时间长度,如果超过这个
时间长度,服务器会将session删除。

(6)删除session

session.invalidate();

你可能感兴趣的:(Java,Servlet,Java,session)