java web Servlet 使用 Application/ServletContext

本文介绍 怎么在Servlet Web应用 中 初始化 全局变量(ServletContext) java

ServletContext 也就是 java Servlet Web应用 里面的全局变量,当咱们有时要作一些初始化配置是一般也是存在ServletContext里面 web

怎么初始化呢?有2个办法,一是监听器(listener)来初始化,二是经过设置servlet的load-on-startup=1,让servlert在web应用在启动时就加载这servlert来实现 ide

咱们这里主要讲第一个,也就是经过监听器(listener)来实现 函数

首先咱们要准备一个实现了ServletContextListener监听器接口的类 spa

public class ContextLoaderListener implements ServletContextListener{

    //实现全局上下文初始化方法
    @Override
    public void contextInitialized(ServletContextEvent servletContextEvent) {
        //得到全局变量
        ServletContext servletContext = servletContextEvent.getServletContext();
        //设置全局变量属性
        servletContext.setAttribute("test","test1");
    }

    //实现全局上下文销毁函数
    @Override
    public void contextDestroyed(ServletContextEvent servletContextEvent) {
        //实现 
    }
}

接下来在web.xml里面配置监听器的配置,在web.xml添加如下配置 code

<listener>
    <listener-class>listener.ContextLoaderListener</listener-class>
</listener>
接下来你就能够在 servlet中取到 全局变量里面test变量的值,代码以下
public class HelloOut extends HttpServlet {
    public void service(HttpServletRequest request,HttpServletResponse response) throws IOException {
        PrintWriter writer = response.getWriter();
        writer.println("Hello Word For Test");
        //获取全局变量
        ServletContext servletContext = getServletContext();
        //输出test变量
        writer.println(servletContext.getAttribute("test"));
        writer.close();
    }
}

PS:扩展,你还能够在listener实现一个计数器,每次运行contextInitialized方法计数+1,而后存到全局变量里去,在servlet中查看计数的值,你就验证contextInitialized 这个方法是否只运行了一次
xml

下一篇文章是在servlet中使用EhCache 接口

相关文章
相关标签/搜索