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 接口

相關文章
相關標籤/搜索