大型项目中侦听器类的用途是什么

时间:2011-09-22 06:34:21

标签: java java-ee listener actionlistener

我对听众课程的内容感到困惑。例如,在这个项目中有一个如下引用的监听器类:

<listener>
    <listener-class>com.sun.javaee.blueprints.petstore.model.CatalogFacade</listener-class> 
</listener>

顾名思义,只是听取行动吗?

4 个答案:

答案 0 :(得分:6)

监听器类会在选定的事件上收到通知,例如启动应用程序或创建新的会话。

监听器类:

  

这些是简单的Java类,它们实现以下两种方法之一   接口:

     
      
  • javax.servlet.ServletContextListener
  •   
  • javax.servlet.http.HttpSessionListener
  •   
     

如果您希望您的班级监听应用程序启动和关闭   事件然后实现ServletContextListener接口。如果你想   然后你的类要监听会话创建和失效事件   实现HttpSessionListener接口。

Source

答案 1 :(得分:4)

我建议从Servlet规范中查看“应用程序生命周期事件”一章。

根据您使用的版本,以下是相应的章节和文档链接:

监听器用于向Web应用程序通知事件,包括ServletContextHttpSessionServletRequest对象中的状态更改。通过实现预定义的侦听器接口(javax.servlet.ServletContextListenerjavax.servlet.http.HttpSessionListenerjavax.servlet.ServletRequestListener等),servlet容器将通知您应用程序中发生的某些事件。它们具有很多潜在用途,例如执行一次性应用程序设置和关闭任务,拦截执行日志记录的请求,跟踪HTTP会话使用等。

答案 2 :(得分:2)

是的,他们正在监听一些行动,例如,如果它的contextloaderlistener然后它将监听上下文加载事件,并且我们可以在这样的事件中做很多事情,所以这些是为那个做的

答案 3 :(得分:2)

更一般地说,听众是observer pattern中的观察者/订阅者。服务器/框架方面为您提供了一种通知某些事件的方法,从而使您有机会采取行动。

并不一定是“大项目”。听众即使在较小的听众中也会派上用场:)。