jsp学习--web监听器

[list=1]
1.什么是web监听器
就是你可以监听你的web应用,监听许多信息的初始化,销毁,增加,修改,删除值等
其实我并不知道监视这些有什么用,书上讲到了,就看一下,水平还不够,不过先把知道掌握了,万一哪天用到,就明白了。



  • ServletContext上下文的监听



要实现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]与我交流。

你可能感兴趣的:(jsp,Web,servlet,Blog)