我感到困惑的是什么监听类做。例如,在这个项目中有如此作为参考的监听器类:
<listener>
<listener-class>com.sun.javaee.blueprints.petstore.model.CatalogFacade</listener-class>
</listener>
难道顾名思义,只是听,要采取行动呢?
我建议审查从Servlet规范“应用程序生命周期事件”一章。
根据您所使用的版本,这里有相应的章节,并链接到文档:
监听器是用来通知事件的Web应用,包括在ServletContext
,HttpSession
和ServletRequest
对象的状态的变化。通过实施预定义的监听器接口(javax.servlet.ServletContextListener
,javax.servlet.http.HttpSessionListener
,javax.servlet.ServletRequestListener
等),servlet容器会通知您在应用程序中发生的某些事件。他们有很多潜在的用途,如进行一次性申请设置和关闭任务,拦截请求进行记录,跟踪HTTP会话使用等。
监听器类得到通知选定的事件,如启动应用程序或创建一个新的会话。
监听器类:
这些都是实现以下两个接口中的一个简单的Java类:
javax.servlet.ServletContextListener
javax.servlet.http.HttpSessionListener
如果你想让你的类监听应用程序启动和关机事件然后实现
ServletContextListener
接口。如果你想让你的类监听会话的创建和失效事件,然后实现HttpSessionListener
接口。
是的正是他们在听一些行动待办事项,例如,如果它的ContextLoaderListener那么它就会听上下文装载事件,有很多的东西,我们可以在这样的情况下这样做的这些都是为制造
更一般地,一个监听在observer pattern观察者/用户侧。服务器/框架边为您提供通知一些事件,因此给你一个机会做你的行为的一种手段。
它不一定必须是“大项目”。听众即使在较小的来方便:)。