您的位置:首页 > 移动开发

ServletContext 和ServletContextListener

2015-06-10 15:43 453 查看
ServletContext 相当于是servlet中的一个容器,其保存着servlet中的一些全局变量,范围比application的范围还是要大,举例来说就是可以初始化一个变量,可以是对象,将其放入ServletContext 中,然后在servlet中可以取出,不受范围限制。

怎么初始化呢?

定义类ContextLoaderListener 实现ServletContextListener接口,

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) {
//实现
}
}


里面有两个函数,分别定义了初始化和销毁时候执行的函数,在初始化中将属性设定,在其他地方取得ServletContext后就可以去除值了。

记得下面web.xml:

<listener>
<listener-class>listener.ContextLoaderListener</listener-class>
</listener>


取出:

public class Hello 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();
}
}


ServletContextListener一直在监视着ServletContext的变化,所以也可以明白ServletContextListener的含义了吧!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息