[list=1]
1.什么是web监听器
就是你可以监听你的web应用,监听许多信息的初始化,销毁,增加,修改,删除值等
其实我并不知道监视这些有什么用,书上讲到了,就看一下,水平还不够,不过先把知道掌握了,万一哪天用到,就明白了。
要实现2个接口,ServletContextListener,ServletContextAttributeListener
public final class MySerevletContextListener implements ServletContextListener, ServletContextAttributeListener{
private ServletContext context=null;
public void contextInitialized(ServletContextEvent event) {
context=event.getServletContext();
logout("ServletContext被初始化了");
}
public void contextDestroyed(ServletContextEvent event) {
logout("ServletContext被销毁了");
this.context=null;
}
public void attributeAdded(ServletContextAttributeEvent event) {
logout("ServletContext增加了一个属性,名字是:"+event.getName()+"值是:"+event.getValue());
}
public void attributeRemoved(ServletContextAttributeEvent event) {
logout("ServletContext删除了一个属性,名字是:"+event.getName()+"值是:"+event.getValue());
}
public void attributeReplaced(ServletContextAttributeEvent event) {
logout("ServletContext被改变了了某个属性,名字是:"+event.getName()+"值是:"+event.getValue());
}
public void logout(String message) {
PrintWriter out = null;
try {
out = new PrintWriter(new FileWriter("E:\\aaa.txt"));
} catch (IOException e) {
e.printStackTrace();
}
out.println("时间是:"+new Date().toString()+"从监听过滤器里得到以下信息"+message);
out.close();
}
}
在一个jsp里,测试一下,首先要得到ServletContext,然后才能给他增加或者删除参数,怎么得就成了问题,我想着应该有getServletContext的static方法,可以直接得,但是竟然没有,提示只有getServletConfig()和getServletInfo(),有点蒙,结果看人家的代码,就是通过getServletConfig()得到配置的对象config,然后再得ServlerContext。
我太不会变通了,刚刚看过,ServletConfig是配置相关的,而ServletContext上下文就是类似与于整个servlet的全局变量,明显是应该通过Config得吗,就差人家给你写出来了,这都没想到。哎!!
从人家blog里看的,总结以下获得ServlerContext的方法:
方法1:
可以通过ServletConfig接口的getServletContext()方法获得
方法2:
通过GenericServlet抽象类的getServletContext()方法获得,不过这个方法其实也是调用了ServletConfig的getServletContext()方法
在GenericServlet.java中
public ServletConfig getServletConfig() {
return config;
}
public ServletContext getServletContext() {
return getServletConfig().getServletContext();
. }
-------------------------------------------------
开源才是王道
我的MSN:
[email protected]与我交流。