1.概念
在一次会话的多次请求之间共享数据,将数据保存在服务器端session对象中。
2.操作
1.获取session对象
request.getSession();====>getSession(true);直接获取session,如果session不存在,就创建一个
request.getSession(false);获取已经存在的session对象,如果不存在获取到null;
2.使用session对象
setAttribute(String name,Object value); 设置session的值
getAttribute(name); 根据session的名字,获取session的值
removeAttribute(String name); 删除session
如果使用请求的转发,可以通过request将数据转发到jsp页面,但是导致页面的路径不会改变,如果使用重定向,可以改变地址栏路径,但是不能通过request传输数据,所以此时用session进行数据的共享。
request在一次请求之间共享数据
session在一次多次(多次请求)之间共享数据
设置session的失效时间。默认30分钟
<session-config>
<session-timeout>1</session-timeout>
</session-config>
session原理分析
session的实现是依赖于cookie的
session的特点
1.session用于存储一次共享会话的多次请求的数据,在服务器端。
2.session可以存储任意数据类型,任意大小的数据。
cookie和session的区别
1.session存在服务器端;cookie存在客户端
2.session由服务器自己创建;cookie也是服务器写进去响应到客户端
3.session存的对象,每一个客户端独立;cookie存的是字符串,也是每一个客户端独享
4.客户端访问服务器,会带着一个jsessionid,如果没有服务器自动创建一个响应给客户端,下次请求带着,session靠jsessionid进行识别用户。