이 글은 springboot의 필터와 인터셉터의 구현 방법(코드)을 소개합니다. 필요한 친구들이 참고할 수 있기를 바랍니다.
필터와 인터셉터는 모두 AOP 프로그래밍 아이디어의 표현이며 권한 확인, 로깅 등과 같은 작업을 구현할 수 있습니다. 둘 사이에는 일정한 유사점이 있지만 차이점은 다음과 같습니다.
Filter는 서블릿 사양이며 웹 프로그램에서만 사용할 수 있는 반면 인터셉터는 Spring 사양입니다. 웹 프로그램이나 응용 프로그램에서 사용할 수 있습니다.
Filter는 서블릿에 정의되며 서블릿 컨테이너에 따라 다릅니다. 인터셉터는 Spring에 정의되어 있으며 Spring 컨테이너에 따라 다릅니다.
인셉터는 Spring 컴포넌트로, Spring에서 관리되고 Spring 구성 파일에 구성되므로 Spring 리소스를 모두 사용할 수 있습니다. 예를 들어 서비스, 데이터 소스 등은 IOC 컨테이너를 통해 인터셉터에 주입될 수 있지만 필터는 주입될 수 없습니다.
필터는 서블릿 전후에만 작동하는 반면, 인터셉터는 메서드 전후, 예외가 발생하기 전후에 깊이 들어갈 수 있습니다. 더 깊이를 사용하세요.
Spring에서 필터 구현하기 #
public class MyFilter implements Filter { @Override public void init(FilterConfig filterConfig) throws ServletException { System.out.println("MyFilter init..."); } @Override public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { //站点图标/favicon.ico filter会执行2次 HttpServletRequest request=(HttpServletRequest) servletRequest; System.out.println(request.getRequestURI()); System.out.println("MyFilter dofilter..."); filterChain.doFilter(servletRequest,servletResponse); } @Override public void destroy() { } }
springboot에 필터 등록하기
#🎜🎜 #@Configuration public class FilterConfig { @Bean public FilterRegistrationBean registrationBean(){ FilterRegistrationBean myfilter=new FilterRegistrationBean(new MyFilter()); myfilter.addUrlPatterns("/*"); return myfilter; }여기로 이동 데모를 실행해 보면 do 필터가 두 번 실행되는 것을 볼 수 있는데, 디버그할 때 사이트 아이콘이 관리되기 때문이라는 것을 발견했습니다. 브라우저가 이를 요청하며 이는 uri를 통해 찾을 수 있습니다. 정규식을 사용하여 필요에 따라 적절하게 제어할 수 있습니다. 방법 2: 서블릿 주석 정의 Filter
@Component @WebFilter(filterName = "myFilter2",urlPatterns = "/*") public class MyFilter2 implements Filter { @Override public void init(FilterConfig filterConfig) throws ServletException { System.out.println("myFilter2 init..."); } @Override public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { System.out.println("myFilter2 dofilter ..."); filterChain.doFilter(servletRequest,servletResponse); } @Override public void destroy() { } }
Servleta 주석을 사용하여 선언된 필터는 실행 중에 요청이 하나만 있습니다. 이는 스프링 구성 필터를 사용하는 것과 다릅니다.
Spring에서 인터셉터 구현
인터셉터는 주로 사용자 정의 클래스를 사용하여 HandlerInterceptor를 통합합니다. preHandle이 true를 반환하면 프로그램은 계속 실행되고 false를 반환하면 요청이 중단됩니다.
public class MyInterceptor implements HandlerInterceptor { @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { System.out.println("/preHandler"); return true; } @Override public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, @Nullable ModelAndView modelAndView) throws Exception { System.out.println("postHandler"); } @Override public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, @Nullable Exception ex) throws Exception { System.out.println("afterCompletion"); } }프로그램에서 인터셉터를 구성하고 차단 규칙을 선언합니다#🎜 🎜 #
@Configuration public class InterceptorConfig implements WebMvcConfigurer { @Override public void addInterceptors(InterceptorRegistry registry) { registry.addInterceptor(new MyInterceptor()).addPathPatterns("/*"); } }
실행 결과
위 내용은 springboot의 필터 및 인터셉터 구현 방법 소개(코드)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

이 기사에서는 Java 프로젝트 관리, 구축 자동화 및 종속성 해상도에 Maven 및 Gradle을 사용하여 접근 방식과 최적화 전략을 비교합니다.

이 기사에서는 Maven 및 Gradle과 같은 도구를 사용하여 적절한 버전 및 종속성 관리로 사용자 정의 Java 라이브러리 (JAR Files)를 작성하고 사용하는 것에 대해 설명합니다.

이 기사는 카페인 및 구아바 캐시를 사용하여 자바에서 다단계 캐싱을 구현하여 응용 프로그램 성능을 향상시키는 것에 대해 설명합니다. 구성 및 퇴거 정책 관리 Best Pra와 함께 설정, 통합 및 성능 이점을 다룹니다.

이 기사는 캐싱 및 게으른 하중과 같은 고급 기능을 사용하여 객체 관계 매핑에 JPA를 사용하는 것에 대해 설명합니다. 잠재적 인 함정을 강조하면서 성능을 최적화하기위한 설정, 엔티티 매핑 및 모범 사례를 다룹니다. [159 문자]

Java의 클래스 로딩에는 부트 스트랩, 확장 및 응용 프로그램 클래스 로더가있는 계층 적 시스템을 사용하여 클래스로드, 링크 및 초기화 클래스가 포함됩니다. 학부모 위임 모델은 핵심 클래스가 먼저로드되어 사용자 정의 클래스 LOA에 영향을 미치도록합니다.


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

안전한 시험 브라우저
안전한 시험 브라우저는 온라인 시험을 안전하게 치르기 위한 보안 브라우저 환경입니다. 이 소프트웨어는 모든 컴퓨터를 안전한 워크스테이션으로 바꿔줍니다. 이는 모든 유틸리티에 대한 액세스를 제어하고 학생들이 승인되지 않은 리소스를 사용하는 것을 방지합니다.

에디트플러스 중국어 크랙 버전
작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음

DVWA
DVWA(Damn Vulnerable Web App)는 매우 취약한 PHP/MySQL 웹 애플리케이션입니다. 주요 목표는 보안 전문가가 법적 환경에서 자신의 기술과 도구를 테스트하고, 웹 개발자가 웹 응용 프로그램 보안 프로세스를 더 잘 이해할 수 있도록 돕고, 교사/학생이 교실 환경 웹 응용 프로그램에서 가르치고 배울 수 있도록 돕는 것입니다. 보안. DVWA의 목표는 다양한 난이도의 간단하고 간단한 인터페이스를 통해 가장 일반적인 웹 취약점 중 일부를 연습하는 것입니다. 이 소프트웨어는

드림위버 CS6
시각적 웹 개발 도구

Eclipse용 SAP NetWeaver 서버 어댑터
Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.
