十三、SpringBoot配置过滤器、监听器、Servlets

本文介绍了SpringBoot如何配置内嵌的servlet容器,如Tomcat、Jetty和Undertow,并详细讲解了如何添加Servlet、Filter和ServletContextListener。通过Spring Bean的方式,这些组件可以自动注册到应用中。默认情况下,单一Servlet会映射到/,过滤器则映射到/*。文章还提到了自定义配置的方法,包括@ServletComponentScan注解、Java配置以及实现ServletContextInitializer接口的方式。
摘要由CSDN通过智能技术生成

内嵌servlet容器支持

Spring Boot支持内嵌的Tomcat, Jetty和Undertow服务器。多数开发者只需要使用合适的’Starter POM’来获取一个完全配置好的实例即可。默认情况下,内嵌的服务器会在8080端口监听HTTP请求。

如果您选择在CentOS上使用Tomcat,请注意,默认情况下,临时目录用于存储编译的JSP,文件上传等。tmpwatch当您的应用程序运行时,目录可能会被删除,从而导致故障。为了避免这种情况,您可能需要自定义tmpwatch配置,以便tomcat.* 不删除或配置目录server.tomcat.basedir,以便嵌入式Tomcat使用不同的位置

为应用添加Servlet,Filter或ServletContextListener

任何Servlet,Filter或者Servlet *Listener实例,它是一个Spring bean将与嵌入容器注册。如果您想application.properties在配置过程中引用一个值,这可能会非常方便。

默认情况下,如果上下文只包含一个Servlet,它将被映射到/。在多个Servlet bean的情况下,bean名称将用作路径前缀。过滤器将映射到/*。

如果以公约为基础测绘不够灵活,你可以使用 ServletRegistrationBean,FilterRegistrationBean而ServletListenerRegistrationBean 类的完全控制。

自定义filter

package com.lf.filter;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

/**
 * Created by LF on 2017/4/17.
 */
@WebFilter(filterName="myFilter",urlPatterns="/*")
public class MyFilter implements Filter {
   
    private static Logger logger = LoggerFactory.getLogger(MyFilter.class);

    @Override
    public void init(FilterConfig filterConfig) throws ServletException {

    }

    @Override
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
        HttpServletRequest httpRequest = (HttpServletRequest) request;
        HttpServletResponse httpResponse = (HttpServletResponse) response;
        String url = httpRequest.getRequestURI();
        logger.info("请求的地址是{}", url);
        chain.doFilter(httpRequest, httpResponse);
    }

    @Override<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值