一、pom文件引入web模块
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
二、配置过滤器、监听器(通过bean注入或注解配置)
2.1、通过bean注入配置过滤器、监听器:
@Bean
public FilterRegistrationBean myFilter() {
FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean();
// 注册自定义过滤器
filterRegistrationBean.setFilter(new MyFilter());
// 过滤器名称
filterRegistrationBean.setName("myFilter");
// 过滤所有路径
filterRegistrationBean.setUrlPatterns(Arrays.asList("/*"));
//优先级,越低越优先,默认值是int最大值
filterRegistrationBean.setOrder(1);
return filterRegistrationBean;
}
@Bean
public ServletListenerRegistrationBean mySession() {
ServletListenerRegistrationBean bean = new ServletListenerRegistrationBean();
bean.setListener(new MyHttpSessionListener());
return bean;
}
@Bean
public ServletListenerRegistrationBean myServletContent() {
ServletListenerRegistrationBean bean = new ServletListenerRegistrationBean();
bean.setListener(new MyServletContextListener());
return bean;
}
2.2、通过注解注册过滤器、监听器核心:
1. 在Application类配置注解ServletComponentScan
@ServletComponentScan
public class SpringBootSampleApplication {
public static void main(String[] args) {
SpringApplication.run(SpringBootSampleApplication.class, args);
}
}
2. 配置过滤器
@WebFilter(filterName="myFilter",urlPatterns="/*")
public class MyFilter implements Filter {
@Override
public void destroy() {
System.out.println("过滤器销毁");
}
@Override
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
System.out.println("执行过滤操作");
chain.doFilter(request, response);
}
@Override
public void init(FilterConfig config) throws ServletException {
System.out.println("过滤器初始化");
}
}
3. 配置监听器
@WebListener
public class MyServletContextListener implements ServletContextListener {
@Override
public void contextInitialized(ServletContextEvent sce) {
System.out.println("ServletContext初始化");
System.out.println(sce.getServletContext().getServerInfo());
}
@Override
public void contextDestroyed(ServletContextEvent sce) {
System.out.println("ServletContext销毁");
}
}
3、验证配置
启动工程后,即可看到相应日志输出