目录
Filter过滤器
方式一:
直接在过滤器中添加@WebFilter注解
在启动器中添加@ServletCompoenentScan
@WebFilter(urlPatterns = "/test2")
public class MyFilter implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {
System.out.println("---init---");
}
@Override
public void destroy() {
System.out.println("---destory---");
}
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
System.out.println("---过滤器执行前---");
filterChain.doFilter(servletRequest,servletResponse);
System.out.println("---过滤器执行后---");
}
}
@SpringBootApplication
//在SpringBoot启动的时候会扫描@WebServlet注解 以及@WebFilter
@ServletComponentScan
public class SpringbootServletApplication {
public static void main(String[] args) {
SpringApplication.run(SpringbootServletApplication.class, args);
}
@Bean
public ServletRegistrationBean servletRegistrationBean() {
//将要添加的Servlet封装为一个ServletRegistrationBean对象
ServletRegistrationBean registrationBean = new ServletRegistrationBean(new ServletDemo());
//设置URL映射信息
registrationBean.addUrlMappings("/test2");
return registrationBean;
}
}
方式二: @Bean
public class MyFilter implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {
System.out.println("---init---");
}
@Override
public void destroy() {
System.out.println("---destory---");
}
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
System.out.println("---过滤器执行前---");
filterChain.doFilter(servletRequest,servletResponse);
System.out.println("---过滤器执行后---");
}
}
启动类加入@Bean
@SpringBootApplication
public class SpringbootServletApplication {
public static void main(String[] args) {
SpringApplication.run(SpringbootServletApplication.class, args);
}
@Bean
public ServletRegistrationBean servletRegistrationBean() {
//将要添加的Servlet封装为一个ServletRegistrationBean对象
ServletRegistrationBean registrationBean = new ServletRegistrationBean(new ServletDemo());
//设置URL映射信息
registrationBean.addUrlMappings("/test2");
return registrationBean;
}
@Bean
public FilterRegistrationBean filterRegistrationBean() {
FilterRegistrationBean registrationBean = new FilterRegistrationBean(new MyFilter());
registrationBean.addUrlPatterns("/test2");
return registrationBean;
}
}
Listener监听器
方式一
- 创建自定义的Listener
- 添加扫描注解
- 启动测试
@WebListener
public class Mylistener implements ServletContextListener{
@Override
public void contextInitialized(ServletContextEvent sce) {
System.out.println("--listener--init---");
}
@Override
public void contextDestroyed(ServletContextEvent sce) {
System.out.println("--listener--destory");
}
}
启动类加@ServletComponentScan
方式二
public class Mylistener implements ServletContextListener{
@Override
public void contextInitialized(ServletContextEvent sce) {
System.out.println("--listener--init---");
}
@Override
public void contextDestroyed(ServletContextEvent sce) {
System.out.println("--listener--destory");
}
}
@SpringBootApplication
public class SpringbootServletApplication {
public static void main(String[] args) {
SpringApplication.run(SpringbootServletApplication.class, args);
}
@Bean
public ServletListenerRegistrationBean servletListenerRegistrationBean() {
ServletListenerRegistrationBean registrationBean = new ServletListenerRegistrationBean(new Mylistener());
return registrationBean;
}
}