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

Cof*_*fee 8 java listener actionlistener java-ee

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

<listener>
    <listener-class>com.sun.javaee.blueprints.petstore.model.CatalogFacade</listener-class> 
</listener>
Run Code Online (Sandbox Code Playgroud)

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

Pål*_*erg 6

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

监听器类:

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

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

如果您希望您的类监听应用程序启动和关闭事件,那么实现ServletContextListener接口.如果您希望您的类监听会话创建和失效事件,那么实现HttpSessionListener接口.

资源

  • `ServletContextListener` 通常在 web 应用程序的启动和关闭时做出反应,并触发必要对象的任何必要初始化。`HttpSessionListener` 通常对登录到应用程序的用户做出反应并进行每个用户的初始化。 (2认同)

she*_*ley 4

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

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

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