对象
Servlet | HttpServlet | Filter | |
---|---|---|---|
Servlet | ServletConfig | FilterConfig | |
Request | ServletRequest | HttpServletRequest | |
Response | ServletResponse | HttpServletResponse | |
Session | HttpSession | ||
Application | ServletContext | ||
Chain | FilterChain |
对比
Servlet | Request | Session | Application | Filter | ||
---|---|---|---|---|---|---|
生命周期 | 创建 | 服务器运行时。 在创建后调用init方法,可以获取配置对象。 |
映射路径产生一次访问时。 | 当不存在与客户端的JSESSIONID对应的Session对象时,首次访问会创建 | 服务器运行时 | 服务器运行时。 在创建后调用init方法,可以获取配置对象。 |
使用 | 在每次访问资源映射路径时,调用service(req, res)方法 | 可以通过其在一次访问中传递数据,构建内部跳转,获取Session对象等。 | 可以通过其在Session存续期间传递和保存数据 | 可以通过其在ServletContext存续期间传递和保存数据 | 在每次访问资源映射路径时,调用doFilter(req, res, chain)方法 | |
销毁 | 服务器停止运行或重启时。在销毁前会调用destroy方法。 | 当一次访问结束后即销毁。 | 默认在Session未再被访问三十分钟后销毁,可以配置销毁时间 | 服务器停止运行或重启时。 | 服务器停止运行或重启时。在销毁前会调用destroy方法。 | |
作用范围 | 整个服务器运行期间 | 一次访问过程 | Session存续期间 (当JSID与Session配对时) |
整个服务器运行期间 | 整个服务器运行期间 | |
数量 | 每个项目仅1个 | 每次访问创建1个 | 客户端JSID在服务端不匹配时创建1个 | 每个项目仅1个 | 每个项目仅1个 |