原理
Listener按照监听的对象的不同可以划分为:
- 监听ServletContext的事件监听器,分别为:ServletContextListener、ServletContextAttributeListener。Application级别,整个应用只存在一个,可以进行全局配置。
- 监听HttpSeesion的事件监听器,分别为:HttpSessionListener、HttpSessionAttributeListener。Session级别,针对每一个对象,如统计会话总数。
- 监听ServletRequest的事件监听器,分别为:ServletRequestListener、ServletRequestAttributeListener。Request级别,针对每一个客户请求。
org.springframework.boot
spring-boot-starter-web
org.springframework.boot
spring-boot-starter-tomcat
provided
javax.servlet
jstl
1.2
compile
org.apache.tomcat.embed
tomcat-embed-jasper
compile
org.eclipse.jdt.core.compiler
ecj
4.6.1
第二步:自定义监听器
@WebListener
public class MyServletRequestListener implements ServletRequestListener {
@Override
public void requestDestroyed(ServletRequestEvent sre) {
System.out.println("Request监听器,销毁");
}
@Override
public void requestInitialized(ServletRequestEvent sre) {
System.out.println("Request监听器,初始化");
}
}
第三步:定义Controller
@RestController
public class DemoController {
@RequestMapping("/fun")
public void fun(){
System.out.println("fun");
}
}
第四步在程序执行入口类上面添加注解
@ServletComponentScan
部署项目,运行查看效果: