SpringBoot_过滤器、Servlet、监听器

本文详细介绍了在SpringBoot中如何配置过滤器、Servlet和监听器。包括自定义实现及通过注解或Bean注册的方式进行配置,适用于希望深入了解SpringBoot Web组件配置的开发者。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

配置方式

过滤器

(1)自定义过滤器TestFilter

public class TestFilter implements Filter {
	@Override
	public void init(FilterConfig filterConfig) throws ServletException {
	}
	@Override
	public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)throws IOException, ServletException {
		chain.doFilter(request, response);
	}
	@Override
	public void destroy() {
	}
}

(2)配置

@Bean  
public FilterRegistrationBean testFilterRegistration() {  
    FilterRegistrationBean registration = new FilterRegistrationBean();  
    registration.setFilter(new TestFilter());  
    registration.addUrlPatterns(”/*”);  
    registration.addInitParameter(”paramName”, “paramValue”);  
    registration.setName(”testFilter”);  
    registration.setOrder(1);  
    return registration;  
} 

Servlet

(1)自定义

public class TestServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    	this.doPost(req, resp);
    }
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //...
    }
}

(2)配置

 @Bean
 public ServletRegistrationBean test2ServletRegistrationBean(){
      ServletRegistrationBean registration = new ServletRegistrationBean(new TestServlet());
      registration.setEnabled(true);
      registration.addUrlMappings("/servlet/test");
      return registration;
  }

监听器

(1)自定义

public class TestListener implements ServletContextListener {
    @Override
    public void contextInitialized(ServletContextEvent sce) {
    }
    @Override
    public void contextDestroyed(ServletContextEvent sce) {
    }
}

(2)配置

  @Bean
  public ServletListenerRegistrationBean servletListenerRegistrationBean(){
    ServletListenerRegistrationBean servletListenerRegistrationBean = new ServletListenerRegistrationBean();
    servletListenerRegistrationBean.setListener(new TestListener());
    return servletListenerRegistrationBean;
  }

注解方式

入口类添加注解扫描:@ServletComponentScan

过滤器

  @WebFilter(urlPatterns = "/*", filterName = "testFilter")
  public class TestFilter implements Filter {
    @Override
    public void init(FilterConfig filterConfig) throws ServletException {
    }
    @Override
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
      filterChain.doFilter(servletRequest,servletResponse);
    }
    @Override
    public void destroy() {
    }
  }

监听器

  @WebListener
  public class TestListener implements ServletContextListener {
    @Override
    public void contextInitialized(ServletContextEvent servletContextEvent) {
    } 
    @Override
    public void contextDestroyed(ServletContextEvent servletContextEvent) {
    }
  }

Servlet

  @WebServlet(name = "testServlet",urlPatterns = "/test")
  public class TestServlet extends HttpServlet {
    @Override
    public void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    }
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
      this.doGet(req, resp);
    }
  }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值