SpringBoot-@WebFilter 사용

12047 단어 SpringBoot
1.@WebFilter 는 클래스 를 필터 로 표시 하 는 데 사 용 됩 니 다.배치 할 때 용기 에 자주 사용 되 는 속성:filter Name:필터 이름 을 지정 합 니 다 url Patterns:필터 의 URL 일치 모드 를 지정 합 니 다.
예시
FilterOne.java
import java.io.IOException;
import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import javax.servlet.http.HttpServletRequest;

@WebFilter(filterName = "FilterOne", urlPatterns = { "/home/*" })
public class FilterOne implements Filter {

    @Override
    public void init(FilterConfig filterConfig) throws ServletException {
        System.out.println("FilterOne      ");
    }

    @Override
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
        HttpServletRequest r = (HttpServletRequest)request;
        System.out.println("  FilterOne   ,   :" + r.getRequestURL());
        chain.doFilter(request, response);
    }

    @Override
    public void destroy() {
    }
}

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

@WebFilter(filterName = "FilterTwo", urlPatterns = { "/test/*" })
public class FilterTwo implements Filter {

    @Override
    public void init(FilterConfig filterConfig) throws ServletException {
        System.out.println("FilterTwo      ");
    }

    @Override
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
        HttpServletRequest r = (HttpServletRequest)request;
        System.out.println("  FilterTwo   ,   :" + r.getRequestURL());
        chain.doFilter(request, response);
    }

    @Override
    public void destroy() {
    }
}

DemoApplication.java
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.servlet.ServletComponentScan;

@SpringBootApplication
@ServletComponentScan
public class DemoApplication {
	public static void main(String[] args) {
		SpringApplication.run(DemoApplication.class, args);
	}
}

방문 하 다.http://localhost:8080/home/1 실행 결과
  FilterOne   ,   :http://localhost:8080/home/1

방문 하 다.http://localhost:8080/test/1 실행 결과
  FilterTwo   ,   :http://localhost:8080/test/1

주:@webfilter 에 관 한 구 덩이 를 본 적 이 있 습 니 다.@webfilter 를 사용 하여 외부 tomcat 에 주석 을 달 지 못 하 는 것 은 문제 가 없습니다.외부 tomcat 에 올 라 가면 구 덩이 를 밟 을 수 있 습 니 다.SpringBoot 차단기 에서 Bean 이 문 제 를 주입 하지 못 할 수도 있 습 니 다.실천 해 야 합 니 다.

좋은 웹페이지 즐겨찾기