Servlet 监听器是Servlet 规范中定义的一种特殊类,用于监听ServletContext、HttpSession 和ServletRequest 等域对象的创建与销毁事件,以及监听这些域对象中属性发生修改的事件
- 监听对象:
1、Request
class myListener implements ServletRequestListener,ServletRequestAttributeListener { //监听request
/**
* ServletRequestListener 监听request对象的创建和销毁
* ServletRequestAttributeListener 监听request作用域数据的变更
*
*/
@Override
public void requestInitialized(ServletRequestEvent sre) { //创建
}
@Override
public void requestDestroyed(ServletRequestEvent sre) {//销毁
}
@Override //监听request作用域数据的添加
public void attributeAdded(ServletRequestAttributeEvent srae) {
//srae 存的是本次新增的数据
System.out.print( srae.getName() +" "+ srae.getValue());
}
@Override
public void attributeRemoved(ServletRequestAttributeEvent srae) {
}
@Override
public void attributeReplaced(ServletRequestAttributeEvent srae) {
}
}
2、session监听
class myListener implements HttpSessionListener,HttpSessionAttributeListener {
@Override
//监听session的创建
public void sessionCreated(HttpSessionEvent se) {
}
@Override
//监听session的销毁
public void sessionDestroyed(HttpSessionEvent se) {
}
//监听session数据的表更
@Override
public void attributeAdded(HttpSessionBindingEvent se) {
}
@Override
public void attributeRemoved(HttpSessionBindingEvent se) {
}
@Override
public void attributeReplaced(HttpSessionBindingEvent se) {
}
}
3、application监听
class myListener implements ServletContextListener,ServletRequestAttributeListener {
@Override
public void contextDestroyed(ServletContextEvent sce) {
}
@Override
public void contextInitialized(ServletContextEvent sce) {
}
@Override
public void attributeAdded(ServletRequestAttributeEvent srae) {
}
@Override
public void attributeRemoved(ServletRequestAttributeEvent srae) {
}
@Override
public void attributeReplaced(ServletRequestAttributeEvent srae) {
}
}
在web.xml配置监听器:
<listener>
<listener-class>类的地址</listener-class>
</listener>
-
监听内容
创建、销毁、属性改变事件 -
监听作用
在事件发生之前,之后进行一些处理,比如统计在线
人数 -
使用
监听request
监听session
监听application -
案例:
统计网站在线人数
统计网页浏览次数
295

被折叠的 条评论
为什么被折叠?



