ServletContext
什么是Servlet上下文?
Servlet上下文又叫做:ServletContext。容器启动之后,容器会为每个web应用创建一个实现了ServletContext接口要求的对象,该对象就称之为servlet上下文。
当WEB服务器启动时,会为每一个WEB应用程序(webapps下的每个目录就是一个应用程序)创建一块共享的存储区域。
ServletContext也叫做“公共区域”,也就是同一个WEB应用程序中,所有的Servlet和JSP都可以共享同一个区域。
ServletContext特点:
1、ServletContext生命周期:在WEB服务器启动时创建,服务器关闭时销毁。
2、唯一性,一个web应用对应一个servlet上下文
3、一直存在,只要容器没有关闭,应用没有被卸载,servlet上下文就会一直存在。
如何获取Servlet上下文?
GenericServlet,ServletConfig,HttpSession,FilterConfig都提供了一个方法getServletContext()来获得Servlet上下文。
ServletContext上下文作用:
1、绑定数据
setAttribute,removeAttribute,getAttribute在满足使用条件情况下,优先使用生命周期短的(request<session<ServletContext)
2、读取全局的初始化参数
首先在web.xml中这么配置
1、作用范围不同:HttpSession是针对每一个客户端浏览器单独有一个。 ServletContext是针对每一个WEB应用程序有一个 2、存活时间不同:HttpSession第一次访问服务器,服务器端调用request.getSession()时创建,访问间隔时间超过30分钟就销毁。 ServletContext服务器启动时创建,服务器停止时销毁。
HttpSession何时被创建,何时被销毁呢?
创建:第一次请求服务器,服务器端的Servlet调用了 request.getSession()方法时被创建。
销毁:如果浏览器间隔时间超过30分钟没有访问服务器,则服务器会销毁对应的HttpSession对象。(默认30分钟是可以配置的。)
<session-config> <session-timeout>30</session-timeout> </session-config>