在服务器端可以向java的GUI那样为各种事件设置监听器listener。servlet和js中有八个Listener接口和六个Event类:
Listener接口 | Event类 | 作用 | 主要方法 |
ServletContextListener | ServletContextEvent | 主要实现监听ServletContext的创建与删除 | contextInitialized(ServletContextEvent event); contextDestroyed(ServletContextEvent event); |
ServletContextAttributeListener | ServletContextAttributeEvent | 主要实现监听ServletContext属性的增加、删除、更改 | attributeAdded(ServletContextAttributeEvent event); 同理还有Replace/Remove方法 |
HttpSessionListener | HttpSessionEvent |
1.会话监听 2.会话的active和passivate,其实就是属性监听
|
sessionCreated(HttpSessionEvent event) 同理还有Destroyed方法 同上面的属性监听的三个方法:Added/Replace/Remove |
HttpSessionActivationListener | |||
HttpSessionBindingListener | HttpSessionBindingEvent |
1. 监听会话中对象的绑定信息,它不需要在web.xml中配置 2.监听属性 |
valueBound(HttpSessionBindingEvent); valueUnBound(HttpSessionBindingEvent);
sessionDidActivate(HttpSessionBindingEvent); |
HttpSessionAttributeListener | |||
ServletRequestListener | ServletRequestEvent | 监听请求 |
requestInitialized(ServletRequestEvent event); requestDestroyed(ServletRequestEvent); |
ServletRequestAttributeListener | ServletRequestAttributeEvent | 监听请求属性 | Added/Replaced/Removed |
以上Listener接口都存放在servlet包内,总的来说就是servletContext及其属性、Http会话及其属性、会话中的对象(也就是一个客户端)及其属性、servlet请求及其属性,共四个方面的监听。
自定义的监听类必须至少实现上述中一个接口,而且除了实现HttpSessionBindingListener接口的类,其他类都需要咋web.xml中进行配置:
<listener>
<listener-class>完整的类名<listener-class>
</listener>
(原来面向过程的语言更强调数据处理,所以叫函数,而面向对象的语言更强调对象,所以把它当做一件东西,那么它就有一些属性和提供的服务,所以叫方法)