최고의 차단 필터 패턴 튜토리얼 2024년, 이 튜토리얼에서는 실현,1 단계,2 단계,3 단계,4 단계,5 단계,6 단계,7 단계,8 단계,를 배울 수 있습니다.
응용 프로그램을 요청 또는 응답 필터 패턴 (차단 필터 패턴)을 차단하는 몇 가지 전처리 / 후 처리를 할 수 있습니다. 필터를 정의하고, 요청에 따라 상기 타겟 애플리케이션의 실제적인 적용에 대한 요청 이전. 필터는 인증 / 권한 부여 / 로깅 또는 추적 요청, 적절한 핸들러에 다음 요청을 할 수 있습니다. 다음은이 설계 패턴의 실체이다.
우리는FilterChain는,FilterManager, 대상, 클라이언트는 다양한 개체와 같은 개체를 나타냅니다 만듭니다.AuthenticationFilter및DebugFilter 엔티티필터를 나타냅니다.
InterceptingFilterDemo,우리는 인터셉트 필터 설계 패턴을 보여클라이언트 클래스의사용을 입증한다.
필터 인터페이스 필터를 만듭니다.
Filter.java
공용 인터페이스 필터 { 공공 무효가 (문자열 요청)을 실행; }
엔티티 필터를 만듭니다.
AuthenticationFilter.java
공용 클래스 AuthenticationFilter는 필터 {구현 공공 무효 {(문자열 요청)을 실행 에서 System.out.println ( "인증 요청 :"+ 요청); } }
DebugFilter.java
공용 클래스 DebugFilter는 필터 {구현 공공 무효 {(문자열 요청)을 실행 에서 System.out.println ( "요청 로그 :"+ 요청); } }
대상을 만듭니다.
Target.java
공용 클래스 대상 { 공공 무효 {(문자열 요청)을 실행 에서 System.out.println ( "실행 요청"+ 요청); } }
필터 체인을 만듭니다.
FilterChain.java
수입 인 java.util.ArrayList; 가져 오기를 java.util.List; 공용 클래스 FilterChain { 개인 목록 <필터> 필터 = 새로운 ArrayList를 <필터> (); 개인 대상 대상; 공공 무효의 AddFilter를 (필터 필터) { filters.add (필터); } 공공 무효 {(문자열 요청)을 실행 {(필터 필터 필터)에 대한 filter.execute (요청); } target.execute (요청); } 공공 무효 setTarget (대상 대상) { this.target = 대상; } }
필터 관리자를 만듭니다.
FilterManager.java
공용 클래스 FilterManager { FilterChain filterChain; 공공 FilterManager (대상 대상) { filterChain = 새로운 FilterChain (); filterChain.setTarget (대상); } 공공 공극에는, setFilter (필터 필터) { filterChain.addFilter (필터); } 공공 무효 filterRequest (문자열 요청) { filterChain.execute (요청); } }
클라이언트 클라이언트를 만듭니다.
Client.java
공용 클래스 클라이언트 { FilterManager filterManager; 공공 무효 setFilterManager (FilterManager filterManager) { this.filterManager = filterManager; } 공공 무효있는 sendRequest (문자열 요청) { filterManager.filterRequest (요청); } }
인터셉트 필터 디자인 패턴을 보여주기 위해클라이언트를 사용합니다.
FrontControllerPatternDemo.java
공용 클래스 InterceptingFilterDemo { 공공 정적 무효 메인 (문자열 []에 args) { FilterManager filterManager = 새로운 FilterManager (새 대상 ()); filterManager.setFilter (새 AuthenticationFilter ()); filterManager.setFilter (새 DebugFilter ()); 클라이언트 클라이언트 = 새로운 클라이언트 (); client.setFilterManager (filterManager); client.sendRequest ( "HOME"); } }
출력을 확인합니다.
인증 요청 : HOME 요청 로그 : HOME 실행 요청 : HOME