java web中的三大组件分别是servlet listener filter。而其中的listener便就是java web中的监听器。

      首先介绍一下监听器就是一个接口,接口的内容由我们自己实现,而且他需要注册,其次监听器的内容会在特殊事件发生时被调用。

      java web中一共有八大监听器,首先便是事件源(产生事件的源头)为三大域的六个监听器,分别是ServletContext的生命周期监听和属性监听以及HttpSession的生命周期监听和属性监听,还有ServletRequest的生命周期监听和属性监听.

 <1>  ServletContext:

              生命周期监听(ServletContextListener):它有两个方法,一个在servlet创建时被调用,一个在销毁时调用。

               属性监听(ServletContextAttributeListener):它有三个方法,一个在添加属性时调用,一个在修改属性时调用,                                                                                   还有一个在移除属性时调用。

  <2>HttpSession:

               生命周期监听(HttpSessionListener)和属性监听(HttpSessionAttributeListener);用法同上。

 <3>ServletRequest:

                生命周期监听(ServletRequestListener)和属性监听(ServletRequestAttributeListener);用法同上。


    在编写这六个监听器时,必须得实现某个对应的监听器接口,而且要在web.xml中完成注册;注册内容为:

    <listener>

      <listener-class>中间即为监听器的路径</listener-class>

     </listener>

   另外两个监听器即为感知监听:用来添加到javabean上。而不是添加到三大域中,与HttpSession有关,并且无需在web.xml中进行注册。

  <1> HttpSessionBindingListener:添加到javabean上,javabean就知道自己是否添加到session中

   <2>HttpSessionActivationListener:监听javabean是否随着session钝化和活化。

    -------------------------------------------------------------------------------------------------------------------------------


         为了帮助理解,首先得知道session的钝化和活化:

         即为当太多的session没有被使用的时候,服务器会把这些session放到硬盘中,释放内存,服务器正常运行,如果用户要使用session,则服务器会把session从硬盘中在放到内存中,以便于用户使用,便就是session的钝化和活化。