Jsp监听器
监听器:
监听器就是对内置对象的状态或者属性变化进行监听,并且做出反应的特殊的servlet,在web.xml文件中对监听器进行的配置。
内置对象有两种状态变化:产生、销毁,就是当产生内置对象的时候能监听、销毁的时候也能进行监听,
当在内置对象中增加、删除、修改一个属性的时候也能进行监听。
监听其状态,要实现request 内置对象的状态监听,需要实现一个接口“ServletRequestListener”如下:
public class RequestListener implements ServletRequestListener{
@Override
public void requestDestroyed(ServletRequestEvent arg0) {
System.out.println("销毁 request 内置对象");
}
@Override
public void requestInitialized(ServletRequestEvent arg0) {
System.out.println("创建 request 内置对象");
}
}
要实现requset 对象的属性监听需要实现另外一个接口“ServletRequestAttributeListener”
总之我们可以使用监听器监听 request 对象的状态变化,使用 request 对象的状态监听器证明了
使用客户端跳转其实上是发送了一个新的请求,另外我们还可以使用监听器监听 request 对象的属性变化。
Session 内置对象的监听器:
session 内置对象的监听器和可以对 session 的状态和属性变化进行监听。
1、对 session 的状态监听需要实现的接口是 “java.servlet.http.HttpSessionListener”
2、对 session 的属性进行监听需要使用到的接口是“java.servlet.http.HttpSessionAttributeListener”
Application 内置对象监听器:
要对 application 的状态进行监听需要使用的接口是“ServletContextListener”。方法如下:
public void contextlnitialized(ServetContextEvent sce) {
初始化方法,在创建 application 内置对象的时候调用该方法
}
public void contextDestroyed(ServletContextEvent sce) {
销毁的时候调用该方法
}
对 application 的属性监听需要使用到的接口是“ServletContextAttributeListener”。方法如下:
public void attributeAdded(ServletContextAttributeEvent scab) {
增加属性的时候触发该方法
}
public void attributeRemoved(ServletContextAttributeEvent scab) {
删除属性的时候触发该方法
}
public void attributeReplaced(ServletContextAttributeEvent scab) {
替换属性的时候调用该方法
}
application 内置对象的监听可以结合 session 内置对象的监听器实现在线人数的统计等功能。