1、创建servlet

(1)创建自定义类

  • 并且使用注解@WebServlet匹配路径

    1. @WebServlet(urlPatterns = "/my") //匹配路径
    2. public class MyServlet extends HttpServlet {
    3. @Override
    4. protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    5. resp.getWriter().write("我是自定义的");
    6. }
    7. }

    (2)使用@ServletComponentScan添加servlet包扫描 ```java @ServletComponentScan(basePackages = “com.daijunyi.springbootthymeleaftest”) @SpringBootApplication public class SpringBootThymeleafTestApplication {

    public static void main(String[] args) {

      SpringApplication.run(SpringBootThymeleafTestApplication.class, args);
    

    }

}

<a name="9c0eY"></a>
## 2、Filter过滤器
也需要先添加一个 包扫描@ServletComponentScan<br />(1)创建过滤器

- urlPatterns中匹配路径需要用*不能用** **是spring中使用的
```java
@Slf4j
@WebFilter(urlPatterns = {"/css/*"})
public class MyFilter implements Filter {
    @Override
    public void init(FilterConfig filterConfig) throws ServletException {
        log.info("MyFilter初始化");
    }

    @Override
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
        log.info("doFilter");
    }

    @Override
    public void destroy() {
        log.info("myFilter销毁");
    }
}

3、监听器

  • @ServletComponentScan+@WebListener+实现ServletContextListener接口

    @Slf4j
    @WebListener
    public class MyServletContextListener implements ServletContextListener {
    
      @Override
      public void contextInitialized(ServletContextEvent sce) {
          log.info("项目启动");
      }
    
      @Override
      public void contextDestroyed(ServletContextEvent sce) {
          log.info("项目结束");
      }
    }
    

    4、另外的方式注册到容器里,RegisterBean方式

    @Configuration
    public class MyConfig {
    
      @Bean
      public ServletRegistrationBean myServlet(){
          MyServlet myServlet = new MyServlet();
          return new ServletRegistrationBean(myServlet,"/my");
      }
    
      @Bean
      public FilterRegistrationBean myFilter(){
          MyFilter myFilter = new MyFilter();
          FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean(myFilter);
          filterRegistrationBean.setUrlPatterns(Arrays.asList("/css/*"));
          return filterRegistrationBean;
      }
    
      @Bean
      public ServletListenerRegistrationBean myListener(){
          MyServletContextListener myServletContextListener = new MyServletContextListener();
          return new ServletListenerRegistrationBean(myServletContextListener);
      }
    }