本文介绍 怎么在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 接口