一般用在购物车的地方。
接口:servlet 容器使用此接口创建 HTTP 客户端和 HTTP 服务器之间的会话。会话将保留指定的时间段,跨多个连接或来自用户的页面请求。一个会话通常对应于一个用户,该用户可能多次访问一个站点。服务器能够以多种方式维护会话,比如使用 cookie 或重写 URL。
也是以键值对的形式存在
定义:客户端向服务器端发送请求,服务器端接受请求并生成响应返回给客户端,客户端对服务器端这样一次连续的调用过程,被称为会话。
会话的典型应用
登陆访问控制
某些资源不能直接访问,只对登陆用户开放
实现方法:把登陆后的信息保存到会话当中,访问资源前,先查看会话中的登陆信息,如果存在,则允许访问,否则跳转到登陆页面
问题:登陆信息能否存到请求中?
不可以。因为请求的有效范围很小,除了请求转发外,都生成新的请求,而会话的有效范围大,而在一次会话当中,服务器端与一个客户端只维护一个会话对象。
在servletAPI中,定义了HttpSession接口,用来封装会话对象。
HttpServlet是接口,不能直接用new创建对象,会话对象是由容器创建 额,使用HttpServletRequest中的方法获得会话对象。
在Jsp文件中使用会话对象的方法
jsp文件中有内置对象session,可以直接调用HttpSession接口中的任意方法。
HttpSession 接口中定义了三个与属性有关的方法,包括setAttribute以及getAttribute、removeAttribute,分别用来储存属性、取属性、删除属性
这三个方法的声明与HttpServletRequet中的属性相关方法完全相同。
会话属性与请求属性的区别
主要区别是有效范围不同。请求中的属性只是在当前的请求对象中有效。只有通过请求转发时,才能把当前请求对象转发到下一个资源,其他情况都生成新的请求,所以请求属性也不再可用
会话属性在会话对象中有效。客户端与服务器连接后,只要没有关闭浏览器,服务器也没有什么异常,就是一次会话,会话属性就一直有效。
由于会话对象的有效时间长,所以安全性相对低,所占的资源较多,因此:请求属性可以解决的问题就用请求,必须用会话时,在考虑会话