Java中ServletRequestListener监听器详解
下文将详细讲述ServletRequestlistener监听器的相关简介说明,如下所示:
例
ServletRequestListener监听器的用途:
Servlet是用户响应监听器
用于对Request请求进行监听(创建、销毁)
ServletRequestListener监听器中的方法
| public void requestInitialized(ServletRequestEvent sre);//request初始化,对实现客户端的请求进行监听 |
| public void requestDestroyed(ServletRequestEvent sre);//对销毁客户端进行监听,即当执行request.removeAttribute("XXX")时调用 |
| //ServletRequestEvent事件: |
| public ServletRequest getServletRequest();//取得一个ServletRequest对象 |
| public ServletContext getServletContext();//取得一个ServletContext(application)对象 |
//使用servletRequestListener来实现web浏览量的变化
package com.java265;
import java.util.Date;
import javax.servlet.ServletRequestEvent;
import javax.servlet.ServletRequestListener;
public class ListenerTest3 implements ServletRequestListener {
@Override
public void requestDestroyed(ServletRequestEvent arg) {
System.out.println("requestDestroyed" + "," + new Date());
System.out.println("当前访问次数:" + arg.getServletContext().getAttribute("count"));
}
@Override
public void requestInitialized(ServletRequestEvent arg) {
System.out.println("requestInitialized" + "," + new Date());
Object count = arg.getServletContext().getAttribute("count");
Integer i = 0;
if (count != null) {
i = Integer.valueOf(count.toString());
}
System.out.println("历史访问次数::" + count);
i++;
arg.getServletContext().setAttribute("count", i);
}
}
/*
在servletRequest对象被建立的时候调用初始化方法
从内存中读取servletContext对象的count属性,而后输出历史访问量
同时在此基础上加一重新设置servletContext对象的count属性的内容
当servletRequest对象被销毁的时候调用销毁时的方法打印出当前浏览量
这样就简单的实现了web浏览的量的累加计数。
*/
public class MyServletRequestListener implements ServletRequestListener {
@Override
public void requestDestroyed(ServletRequestEvent sre) {
System.out.println(sre.getServletRequest() + "销毁了!!");
}
@Override
public void requestInitialized(ServletRequestEvent sre) {
System.out.println(sre.getServletRequest() + "创建了!!");
}
}
//web.xml文件中注册监听器
<!--注册针对ServletRequest对象进行监听的监听器-->
<listener>
<description>ServletRequestListener监听器</description>
<listener-class>com.java265.MyServletRequestListener</listener-class>
</listener>
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。


