HttpServletRequest - 请求对象
创建:客户端向容器发送请求时创建
销毁:容器对这次请求做出响应后销毁
有效范围:只对当前请求涉及的 Servlet 有效
数量:Web 应用中的所有 Servlet 实例都可以有多个 request 对象
数据共享:每一次请求都是一个新的 request 对象。通过和请求转发的配合使用可以实现一次请求中 Web 组件之间共享的数据。
HttpSession - 用户会话对象
创建:容器第一次调用 getSession() 方法时创建
销毁:
- 关闭服务器或应用被卸载。
- Session 过期,默认为 30 分钟。
- 手动调用 session.invalidate() 方法进行销毁。
有效范围: Session 对本次会话期间的所有 Servlet 都有效
数量:Web 应用中可以有多个 Session,多个 Servet 实例可以共享同一 Session 对象
数据共享:每一次会话都是一个新的 Session 对象。通过 Session 域对象可以实现一次会话中的多个请求之间共享数据。
ServletContext - web应用全局对象
创建:Servlet 容器启动时创建
销毁:容器关闭或者 Web 应用被移除时销毁
有效范围:对整个 Web 应用内的所有 Servlet 有效
数量:在整个 Web 应用中只有一个 Context 对象
数据共享:在一个应用中有且只有一个 Context 对象,作用于整个 Web 应用,可以实现多次会话之间的数据共享