天天看点

Listenter之使用ServletRequestListener和ServletRequestAttributeListener

ServletRequestListener用于监听用户请求的到达,实现该接口的监听器需要实现如下两个方法;

1.requestInitialized(ServletRequestEvent sre):用户请求到达,被初始化时触发该方法。

2.requestDestroyed(ServletRequestEvent sre):用户请求结束,被销毁时触发该方法。

ServletRequestAttributeListener则用于监听ServletRequest(request)范围内属性的变化,实现该接口的监听器需要实现attributeAdded(),attributeRemoved(),attributeReplaced()三个方法,由此可见ServletRequestAttributeListener与ServletContextAttributeListener的作用相似,都用于监听属性的改变,只是ServletRequestAttributeListener监听request范围内的改变,而ServletContextAttributeListener范围内属性的改变。

需要指出的是,应用程序完全可以采用一个监听器类来监听多种事件,只要让该监听器实现类同时实现多个监听器接口即可,如下代码:

Listenter之使用ServletRequestListener和ServletRequestAttributeListener
Listenter之使用ServletRequestListener和ServletRequestAttributeListener

上面的监听器实现类同时实现了ServletRequestListener接口和ServletRequestAttributeListener接口,因此它既可以监听用户请求的初始化和销毁,也可监听request范围内属性的变化。

由于实现了ServletRequestListener接口的监听器可以非常方便监听到每次请求的创建,销毁因此web应用可以通过实现该接口的监听器访问该应用的每个请求,从而实现系统日志。

继续阅读