创建方式:
第一种:
@WebListener
public class RequestListenter implements ServletRequestListener {
@Override
public void requestDestroyed(ServletRequestEvent servletRequestEvent) {
System.out.println("---------------------------->请求销毁");
}
@Override
public void requestInitialized(ServletRequestEvent servletRequestEvent) {
System.out.println("---------------------------->请求创建");
}
}
注意:@WebListener注解为声明此类为Listener,无需再进行配置,唯一注意的是,使用注解的方式声明Listener时,需要再main函数类上添加@ServletComponentScan(basePackages = “此处写明类地址,格式为包名+类名”),示例代码如下:
@SpringBootApplication
@ComponentScan("com.yxc.*")
@ServletComponentScan(basePackages = "com.yxc.*")
public class SpringbootlApplication {
public static void main(String[] args) {
SpringApplication.run(SpringbootlApplication.class, args);
}
}
2.运行测试,随便访问一个接口,结果如下:
监听器配置成功。
第二种
@Bean
public ServletListenerRegistrationBean<DataInitializeListener> getDataInitializeListenerBean(){
ServletListenerRegistrationBean<DataInitializeListener> listenerRegistrationBean=new ServletListenerRegistrationBean<>();
listenerRegistrationBean.setListener(new RequestListente());
return listenerRegistrationBean;
}
这里我们再补充一下常用的监听器接口:
1.ServletContextListener – 监听servletContext对象的创建以及销毁
1.1 contextInitialized(ServletContextEvent arg0) – 创建时执行
1.2 contextDestroyed(ServletContextEvent arg0) – 销毁时执行
2.HttpSessionListener – 监听session对象的创建以及销毁
2.2 sessionCreated(HttpSessionEvent se) – 创建时执行
2.2 sessionDestroyed(HttpSessionEvent se) – 销毁时执行
3.ServletRequestListener – 监听request对象的创建以及销毁
3.1 requestInitialized(ServletRequestEvent sre) – 创建时执行
3.2 requestDestroyed(ServletRequestEvent sre) – 销毁时执行
4.ServletContextAttributeListener – 监听servletContext对象中属性的改变
4.1 attributeAdded(ServletContextAttributeEvent event) – 添加属性时执行
4.2 attributeReplaced(ServletContextAttributeEvent event) – 修改属性时执行
4.3 attributeRemoved(ServletContextAttributeEvent event) – 删除属性时执行
5.HttpSessionAttributeListener --监听session对象中属性的改变
5.1 attributeAdded(HttpSessionBindingEvent event) – 添加属性时执行
5.2 attributeReplaced(HttpSessionBindingEvent event) – 修改属性时执行
5.3 attributeRemoved(HttpSessionBindingEvent event) – 删除属性时执行
6.ServletRequestAttributeListener --监听request对象中属性的改变
6.1 attributeAdded(ServletRequestAttributeEvent srae) – 添加属性时执行
6.2 attributeReplaced(ServletRequestAttributeEvent srae) – 修改属性时执行
6.3 attributeRemoved(ServletRequestAttributeEvent srae) – 删除属性时执行