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

Java 大型项目中侦听器类的用途是什么,java,jakarta-ee,listener,actionlistener,Java,Jakarta Ee,Listener,Actionlistener,我对侦听器类的功能感到困惑。例如,在此项目中,有一个侦听器类被引用为: <listener> <listener-class>com.sun.javaee.blueprints.petstore.model.CatalogFacade</listener-class> </listener> com.sun.javaee.blueprints.petstore.model.CatalogFacade 是否如其名称所示,只是侦听要执行

我对侦听器类的功能感到困惑。例如,在此项目中,有一个侦听器类被引用为:

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

com.sun.javaee.blueprints.petstore.model.CatalogFacade

是否如其名称所示,只是侦听要执行的操作?

侦听器类会收到有关选定事件的通知,例如启动应用程序或创建新会话

侦听器类:

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

  • javax.servlet.ServletContextListener
  • javax.servlet.http.HttpSessionListener
如果您希望您的类侦听应用程序的启动和关闭
然后事件实现
ServletContextListener
接口。如果你愿意 然后,您的类将侦听会话创建和失效事件 实现HttpSessionListener接口


是的,确切地说,他们正在监听一些要做的动作,例如,如果其contextloaderlistener,那么它将监听上下文加载事件,我们可以在此类事件中执行许多操作,因此这些都是为此而做的。

更一般地说,侦听器是系统中的观察者/订阅者端。服务器/框架端为您提供了一种接收某些事件通知的方法,从而为您提供了执行操作的机会


而且不一定是“大项目”。侦听器即使在较小的侦听器中也很方便:)。

我建议查看Servlet规范中关于“应用程序生命周期事件”的章节

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

  • :第11章
  • :第10章
  • :第10章

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

ServletContextListener
通常在启动和关闭web应用程序时作出反应,并触发必要对象的任何必要初始化
HttpSessionListener
通常会在用户登录到应用程序时做出反应,并对每个用户进行初始化。@VinetReynolds谢谢,“客户端”在这里很尴尬。顺便说一句,如果你没有通知我,我怎么能看到编辑的内容呢?是否有一个“历史”按钮,因为我的代表率低而看不到?