Spring HandlerInterceptor 대 서블릿 필터
Spring의 HandlerInterceptor 는 이제 .NET을 사용하여 특정 URL에서만 호출되도록 구성 할 수 있습니다 <mvc:interceptors>
.
서블릿 필터는 동일한 기능 (로깅, 보안 등)을 달성 할 수 있습니다. 그렇다면 어느 것을 사용해야합니까?
인터셉터를 사용하면 ModelAndView
객체를 사용 하여 모델과 작업 할 수 있으므로 더 많은 이점이 있습니다. 누구든지 필터 나 인터셉터가 다른 것에 비해 이점이있는 시나리오를 그릴 수 있습니까?
org.springframework.web.servlet.HanderInterceptor
인터페이스 의 JavaDoc 자체가이 문제를 논의 두 단락을 가지고 :
HandlerInterceptor는 기본적으로 Servlet 2.3 필터와 유사하지만 후자와는 달리 핸들러 자체의 실행을 금지하는 옵션과 사용자 정의 후 처리를 허용하는 사용자 정의 전처리 만 허용합니다. 필터는 더 강력합니다. 예를 들어 체인으로 전달되는 요청 및 응답 객체를 교환 할 수 있습니다. 필터는 애플리케이션 컨텍스트의 HandlerInterceptor 인 web.xml에서 구성됩니다.
기본 지침으로, 세분화 된 핸들러 관련 전처리 작업은 HandlerInterceptor 구현, 특히 팩토 아웃 된 공통 핸들러 코드 및 권한 확인의 후보입니다. 반면에 필터는 멀티 파트 양식 및 GZIP 압축과 같은 콘텐츠 요청 및보기 콘텐츠 처리에 적합합니다. 이것은 일반적으로 필터를 특정 콘텐츠 유형 (예 : 이미지) 또는 모든 요청에 매핑해야하는 경우를 보여줍니다.
Spring Handler 인터셉터를 사용하면 요청 수명주기의 더 많은 부분에 연결하고 프로세스에서 더 많은 정보에 액세스 할 수 있습니다. 필터보다 요청 / 응답주기와 더 밀접하게 연결되는 경우가 많습니다.
요청 / 응답을 블랙 박스 시스템으로 처리 할 때 필터가 더 적합합니다. 서블릿이 구현되는 방식에 관계없이 작동합니다.
Spring MVC를 사용하는 경우 새 로직을 서블릿 필터로 작성할 이유가 거의 없습니다. 모든 필터가 할 수 있고 인터셉터는 더 쉽고 우아하게 할 수 있습니다.
또한 서블릿 필터는 인터셉터보다 훨씬 오랫동안 사용되었습니다.
Spring 인터셉터를 사용하면 유용 할 수있는 Handler에 액세스 할 수 있습니다. 또한 Spring 인터셉터를 사용하면보기가 렌더링되기 전과보기가 렌더링 된 후에 논리를 실행할 수 있습니다.
참고 URL : https://stackoverflow.com/questions/8000844/spring-handlerinterceptor-vs-servlet-filters
'Programing' 카테고리의 다른 글
Android 스크롤 끝에서 동적으로 Listview를로드합니까? (0) | 2020.11.25 |
---|---|
clang 플래그의 전체 목록? (0) | 2020.11.25 |
R의 glm 모델에 모든 양방향 상호 작용을 자동으로 포함하는 방법 (0) | 2020.11.25 |
Mock MVC-테스트 할 요청 매개 변수 추가 (0) | 2020.11.25 |
Mocha에서 describe ()의 역할은 무엇입니까? (0) | 2020.11.25 |