The best Intercepting Filter pattern Tutorial In 2024, In this tutorial you can learn achieve,step 1,Step 2,Step 3,Step 4,Step 5,Step 6,Step 7,Step 8,
Intercepting Filter pattern (Intercepting Filter Pattern) for requesting an application or in response to do some pre-processing / post-processing. Define the filter, and before the request to the practical application of the target application on request. Filters can do authentication / authorization / logging or tracking request, then the request to the appropriate handler. The following is an entity of this design pattern.
We will createFilterChain,FilterManager, Target, Client represents entities as various objects.AuthenticationFilterandDebugFilterrepresent entities filters.
InterceptingFilterDemo,we demonstrate the use ofClientclass to demonstrate the Intercepting Filter design pattern.
Create Filter Interface Filter.
Filter.java
public interface Filter { public void execute (String request); }
Create entity filter.
AuthenticationFilter.java
public class AuthenticationFilter implements Filter { public void execute (String request) { System.out.println ( "Authenticating request:" + request); } }
DebugFilter.java
public class DebugFilter implements Filter { public void execute (String request) { System.out.println ( "request log:" + request); } }
Create Target.
Target.java
public class Target { public void execute (String request) { System.out.println ( "Executing request:" + request); } }
Create a filter chain.
FilterChain.java
import java.util.ArrayList; import java.util.List; public class FilterChain { private List <Filter> filters = new ArrayList <Filter> (); private Target target; public void addFilter (Filter filter) { filters.add (filter); } public void execute (String request) { for (Filter filter: filters) { filter.execute (request); } target.execute (request); } public void setTarget (Target target) { this.target = target; } }
Create Filter Manager.
FilterManager.java
public class FilterManager { FilterChain filterChain; public FilterManager (Target target) { filterChain = new FilterChain (); filterChain.setTarget (target); } public void setFilter (Filter filter) { filterChain.addFilter (filter); } public void filterRequest (String request) { filterChain.execute (request); } }
Create a client Client.
Client.java
public class Client { FilterManager filterManager; public void setFilterManager (FilterManager filterManager) { this.filterManager = filterManager; } public void sendRequest (String request) { filterManager.filterRequest (request); } }
UseClientto demonstrate the Intercepting Filter design pattern.
FrontControllerPatternDemo.java
public class InterceptingFilterDemo { public static void main (String [] args) { FilterManager filterManager = new FilterManager (new Target ()); filterManager.setFilter (new AuthenticationFilter ()); filterManager.setFilter (new DebugFilter ()); Client client = new Client (); client.setFilterManager (filterManager); client.sendRequest ( "HOME"); } }
Verify output.
Authenticating request: HOME request log: HOME Executing request: HOME