ServletContext

来源:互联网 发布:虐杀原形隐藏boss 知乎 编辑:程序博客网 时间:2024/06/05 10:40

ServletContext

每个Web应用有一个ServletContext,在一个Web应用中部署的各个servletJSP都能访问同一个ServletContext

ServletContext接口的常用方法
1.获取初始化参数以及获取/设置属性

  • getInitParameter(String)
  • getInitParameterNames()
  • setAttribute(String, Object)
  • getAttribute(String)
  • getAttributeNames(String)
  • removeAttribute(String)

2.获取有关服务器/容器的信息

  • getMajorVersion()
  • getServerInfo()

3.其它

  • getRealPath(String)
  • getResourceAsStream(String)
  • getRequestDispatcher(String)
  • log(String)

获取ServletContext的方式:

getServletConfig().getServletContext().getInitParameter()

等同于:

this.getServletContext().getInitParameter()

ServletContextListener接口监听上下午初始化事件,可以得到上下文初始化参数,并在应用为客户提供服务之前运行一些代码

  • contextInitialized 上下文初始化
  • contextDestroyed 上下文撤销

例子,通过获取上下文出事话参数,创建一个对象
1.部署文件,添加一个上下文初始化参数和注册监听器

  <context-param>    <param-name>breed</param-name>    <param-value>Great Dane</param-value>  </context-param>  <listener>    <listener-class>com.example.MyServletContextListener</listener-class>  </listener>

2.监听器类MyServletContextListener,获取上下文参数来创建对象

public class MyServletContextListener implements ServletContextListener {    @Override    public void contextDestroyed(ServletContextEvent event) {        System.out.println("contextDestroyed");    }    @Override    public void contextInitialized(ServletContextEvent event) {        System.out.println("contextInitialized");        ServletContext sc = event.getServletContext();        String dogBreed = sc.getInitParameter("breed");        Dog dog = new Dog(dogBreed);        sc.setAttribute("dog", dog);    }}

参考

  • Java ServletContext 详解
原创粉丝点击