本文介紹 怎麼在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 接口