ServletContext
ServletContext:针对一个WEB应用。一个WEB应用只有一个ServletContext对象,使用该对象保存的数据在整个WEB应用中都有效。(大管家)
生命周期
创建: 服务器启动的时候
销毁: 服务器关闭或者项目移除的时候
HttpSession
针对一次会话。使用该对象保存数据,一次会话(多次请求)内数据有效.
生命周期
创建: 服务器第一次调用getSession()的时候.服务器创建session的对象
销毁:
- 非正常关闭服务器(正常关闭:Session被序列化)
- Session过期了,默认时间是30分钟.
- 手动调用session的invalidate的方法.
HttpServletRequest
针对一次请求。使用该对象保存数据,一次请求(一个页面,如果是请求转发多个页面)内数据有效.
生命周期
创建: 客户端向服务器发送一次请求
销毁: 服务器为这次请求做出相应之后销毁
三个作用域对象操作的API相同
存放数据:setAttribute(name,value)
获得数据:getAttribute(name)
删除数据:removeAttribute(name
ServletContext与HttpServletRequest为什么不能存储当前会话的信息
ServletContext是整个项目级别的,如果使用ServletContext保存,多个用户可以共享这一个信息;
HttpServletRequest是当前请求,请求结束之后会被销毁,下次访问再次创建一个新的,上次保存的信息就不存在了