ServletContext的概念和作用范围
ServletContext是javax.servlet包内定义的接口,Web容器会为每个Web程序构造一个实现该接口的对象实例,通过这个对象,Servlet可以和web容器进行交互,如获取Web容器版本号,通过Web容器的日志机制记录信息等;也可以和同一Web程序的其他Servlet进行交流,如可以通过该对象的属性来共享数据。
获取ServletContext()对象的方法:
- 通过ServletConfig对象的getServletContext()方法获取。
ServletContext sc=getServletConfig().getServletContext();
- 直接通过Servlet的getServletContext()方法获取
ServletContext sc=getServletContext();(其实底层实现也是通过ServletConfig对象)
web程序只有一个ServletContext对象,程序内所有Servlet获取的实质都是同一个对象的引用,因此可以使用它进行数据共享。
ServletContext获取初始化参数的方法,
String getInitParameter(String name) 获取名为name的初始参数值,不存在时返回nul
Enumeration getInitParameterNames() 获取所有初始参数的名称,不存在时返回空的Enumeration,不会返回null
使用ServletContextAttributeListener监听器
监听器实际是一个实现特定接口的java类。Servlet中定义了几种监听器接口,分别对应不同的事件类型,这里介绍ServletContextAttributeListener。ServletContextAttributeListener接口定义了三个方法,
Web容器调用监听器方法时,通过传入ServletContextAttributeEvent对象来描述事件的详细情况。