parent
7a789cda65
commit
79b5f7ecf5
@ -0,0 +1,11 @@
|
||||
package com.msb.chain.servlet.v1;
|
||||
|
||||
/**
|
||||
* @Author bingor
|
||||
* @Date 2022/10/18 10:05
|
||||
* @Description: com.msb.chain.servlet.v1
|
||||
* @Version: 1.0
|
||||
*/
|
||||
public interface Filter {
|
||||
public void doFilter(Request request, Response response);
|
||||
}
|
@ -0,0 +1,32 @@
|
||||
package com.msb.chain.servlet.v1;/**
|
||||
* @Author bingor
|
||||
* @Date 2022/10/18 10:09
|
||||
* @Description: com.msb.chain.servlet.v1
|
||||
* @Version: 1.0
|
||||
*/
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
*@ClassName ChainFilter
|
||||
*@Description TODO
|
||||
*@Author bingor
|
||||
*@Date 2022/10/18 10:09
|
||||
*@Version 3.0
|
||||
*/
|
||||
public class FilterChain implements Filter {
|
||||
private List<Filter> filters = new ArrayList<>();
|
||||
|
||||
public FilterChain addFilter(Filter filter) {
|
||||
filters.add(filter);
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void doFilter(Request request, Response response) {
|
||||
for (Filter filter : filters) {
|
||||
filter.doFilter(request, response);
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,28 @@
|
||||
package com.msb.chain.servlet.v1;/**
|
||||
* @Author bingor
|
||||
* @Date 2022/10/18 10:11
|
||||
* @Description: com.msb.chain.servlet.v1
|
||||
* @Version: 1.0
|
||||
*/
|
||||
|
||||
/**
|
||||
*@ClassName Main
|
||||
*@Description TODO
|
||||
*@Author bingor
|
||||
*@Date 2022/10/18 10:11
|
||||
*@Version 3.0
|
||||
*/
|
||||
public class Main {
|
||||
public static void main(String[] args) {
|
||||
FilterChain chain = new FilterChain();
|
||||
Request request = new Request();
|
||||
request.setStr("request:");
|
||||
Response response = new Response();
|
||||
response.setStr("response:");
|
||||
|
||||
chain.addFilter(new OneFilter()).addFilter(new TwoFilter());
|
||||
chain.doFilter(request, response);
|
||||
System.out.println(request.getStr());
|
||||
System.out.println(response.getStr());
|
||||
}
|
||||
}
|
@ -0,0 +1,21 @@
|
||||
package com.msb.chain.servlet.v1;/**
|
||||
* @Author bingor
|
||||
* @Date 2022/10/18 10:05
|
||||
* @Description: com.msb.chain.servlet.v1
|
||||
* @Version: 1.0
|
||||
*/
|
||||
|
||||
/**
|
||||
*@ClassName HtmlFilter
|
||||
*@Description TODO
|
||||
*@Author bingor
|
||||
*@Date 2022/10/18 10:05
|
||||
*@Version 3.0
|
||||
*/
|
||||
public class OneFilter implements Filter {
|
||||
@Override
|
||||
public void doFilter(Request request, Response response) {
|
||||
request.setStr(request.getStr() + "-OneFilter");
|
||||
response.setStr(response.getStr() + "-OneFilter");
|
||||
}
|
||||
}
|
@ -0,0 +1,25 @@
|
||||
package com.msb.chain.servlet.v1;/**
|
||||
* @Author bingor
|
||||
* @Date 2022/10/18 10:04
|
||||
* @Description: com.msb.chain.servlet.v1
|
||||
* @Version: 1.0
|
||||
*/
|
||||
|
||||
/**
|
||||
*@ClassName Request
|
||||
*@Description TODO
|
||||
*@Author bingor
|
||||
*@Date 2022/10/18 10:04
|
||||
*@Version 3.0
|
||||
*/
|
||||
public class Request {
|
||||
private String str;
|
||||
|
||||
public String getStr() {
|
||||
return str;
|
||||
}
|
||||
|
||||
public void setStr(String str) {
|
||||
this.str = str;
|
||||
}
|
||||
}
|
@ -0,0 +1,25 @@
|
||||
package com.msb.chain.servlet.v1;/**
|
||||
* @Author bingor
|
||||
* @Date 2022/10/18 10:04
|
||||
* @Description: com.msb.chain.servlet.v1
|
||||
* @Version: 1.0
|
||||
*/
|
||||
|
||||
/**
|
||||
*@ClassName Request
|
||||
*@Description TODO
|
||||
*@Author bingor
|
||||
*@Date 2022/10/18 10:04
|
||||
*@Version 3.0
|
||||
*/
|
||||
public class Response {
|
||||
private String str;
|
||||
|
||||
public String getStr() {
|
||||
return str;
|
||||
}
|
||||
|
||||
public void setStr(String str) {
|
||||
this.str = str;
|
||||
}
|
||||
}
|
@ -0,0 +1,21 @@
|
||||
package com.msb.chain.servlet.v1;/**
|
||||
* @Author bingor
|
||||
* @Date 2022/10/18 10:08
|
||||
* @Description: com.msb.chain.servlet.v1
|
||||
* @Version: 1.0
|
||||
*/
|
||||
|
||||
/**
|
||||
*@ClassName TwoFilter
|
||||
*@Description TODO
|
||||
*@Author bingor
|
||||
*@Date 2022/10/18 10:08
|
||||
*@Version 3.0
|
||||
*/
|
||||
public class TwoFilter implements Filter {
|
||||
@Override
|
||||
public void doFilter(Request request, Response response) {
|
||||
request.setStr(request.getStr() + "-TwoFilter");
|
||||
response.setStr(response.getStr() + "-TwoFilter");
|
||||
}
|
||||
}
|
@ -0,0 +1,11 @@
|
||||
package com.msb.chain.servlet.v3;
|
||||
|
||||
/**
|
||||
* @Author bingor
|
||||
* @Date 2022/10/18 10:05
|
||||
* @Description: com.msb.chain.servlet.v1
|
||||
* @Version: 1.0
|
||||
*/
|
||||
public interface Filter {
|
||||
public void doFilter(Request request, Response response, FilterChain chain);
|
||||
}
|
@ -0,0 +1,35 @@
|
||||
package com.msb.chain.servlet.v3;/**
|
||||
* @Author bingor
|
||||
* @Date 2022/10/18 10:09
|
||||
* @Description: com.msb.chain.servlet.v1
|
||||
* @Version: 1.0
|
||||
*/
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
*@ClassName ChainFilter
|
||||
*@Description TODO
|
||||
*@Author bingor
|
||||
*@Date 2022/10/18 10:09
|
||||
*@Version 3.0
|
||||
*/
|
||||
public class FilterChain implements Filter {
|
||||
private List<Filter> filters = new ArrayList<>();
|
||||
private int index = 0;
|
||||
|
||||
public FilterChain addFilter(Filter filter) {
|
||||
filters.add(filter);
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void doFilter(Request request, Response response, FilterChain chain) {
|
||||
if(index == filters.size()) return;
|
||||
Filter filter = filters.get(index);
|
||||
index++;
|
||||
filter.doFilter(request, response, chain);
|
||||
return;
|
||||
}
|
||||
}
|
@ -0,0 +1,28 @@
|
||||
package com.msb.chain.servlet.v3;/**
|
||||
* @Author bingor
|
||||
* @Date 2022/10/18 10:11
|
||||
* @Description: com.msb.chain.servlet.v1
|
||||
* @Version: 1.0
|
||||
*/
|
||||
|
||||
/**
|
||||
*@ClassName Main
|
||||
*@Description TODO
|
||||
*@Author bingor
|
||||
*@Date 2022/10/18 10:11
|
||||
*@Version 3.0
|
||||
*/
|
||||
public class Main {
|
||||
public static void main(String[] args) {
|
||||
FilterChain chain = new FilterChain();
|
||||
Request request = new Request();
|
||||
request.setStr("request:");
|
||||
Response response = new Response();
|
||||
response.setStr("response:");
|
||||
|
||||
chain.addFilter(new OneFilter()).addFilter(new TwoFilter());
|
||||
chain.doFilter(request, response, chain);
|
||||
System.out.println(request.getStr());
|
||||
System.out.println(response.getStr());
|
||||
}
|
||||
}
|
@ -0,0 +1,22 @@
|
||||
package com.msb.chain.servlet.v3;/**
|
||||
* @Author bingor
|
||||
* @Date 2022/10/18 10:05
|
||||
* @Description: com.msb.chain.servlet.v1
|
||||
* @Version: 1.0
|
||||
*/
|
||||
|
||||
/**
|
||||
*@ClassName HtmlFilter
|
||||
*@Description TODO
|
||||
*@Author bingor
|
||||
*@Date 2022/10/18 10:05
|
||||
*@Version 3.0
|
||||
*/
|
||||
public class OneFilter implements Filter {
|
||||
@Override
|
||||
public void doFilter(Request request, Response response, FilterChain chain) {
|
||||
request.setStr(request.getStr() + "-OneFilter");
|
||||
chain.doFilter(request, response, chain);
|
||||
response.setStr(response.getStr() + "-OneFilter");
|
||||
}
|
||||
}
|
@ -0,0 +1,25 @@
|
||||
package com.msb.chain.servlet.v3;/**
|
||||
* @Author bingor
|
||||
* @Date 2022/10/18 10:04
|
||||
* @Description: com.msb.chain.servlet.v1
|
||||
* @Version: 1.0
|
||||
*/
|
||||
|
||||
/**
|
||||
*@ClassName Request
|
||||
*@Description TODO
|
||||
*@Author bingor
|
||||
*@Date 2022/10/18 10:04
|
||||
*@Version 3.0
|
||||
*/
|
||||
public class Request {
|
||||
private String str;
|
||||
|
||||
public String getStr() {
|
||||
return str;
|
||||
}
|
||||
|
||||
public void setStr(String str) {
|
||||
this.str = str;
|
||||
}
|
||||
}
|
@ -0,0 +1,25 @@
|
||||
package com.msb.chain.servlet.v3;/**
|
||||
* @Author bingor
|
||||
* @Date 2022/10/18 10:04
|
||||
* @Description: com.msb.chain.servlet.v1
|
||||
* @Version: 1.0
|
||||
*/
|
||||
|
||||
/**
|
||||
*@ClassName Request
|
||||
*@Description TODO
|
||||
*@Author bingor
|
||||
*@Date 2022/10/18 10:04
|
||||
*@Version 3.0
|
||||
*/
|
||||
public class Response {
|
||||
private String str;
|
||||
|
||||
public String getStr() {
|
||||
return str;
|
||||
}
|
||||
|
||||
public void setStr(String str) {
|
||||
this.str = str;
|
||||
}
|
||||
}
|
@ -0,0 +1,22 @@
|
||||
package com.msb.chain.servlet.v3;/**
|
||||
* @Author bingor
|
||||
* @Date 2022/10/18 10:08
|
||||
* @Description: com.msb.chain.servlet.v1
|
||||
* @Version: 1.0
|
||||
*/
|
||||
|
||||
/**
|
||||
*@ClassName TwoFilter
|
||||
*@Description TODO
|
||||
*@Author bingor
|
||||
*@Date 2022/10/18 10:08
|
||||
*@Version 3.0
|
||||
*/
|
||||
public class TwoFilter implements Filter {
|
||||
@Override
|
||||
public void doFilter(Request request, Response response, FilterChain chain) {
|
||||
request.setStr(request.getStr() + "-TwoFilter");
|
||||
chain.doFilter(request, response, chain);
|
||||
response.setStr(response.getStr() + "-TwoFilter");
|
||||
}
|
||||
}
|
@ -0,0 +1,11 @@
|
||||
package com.msb.chain.servlet.v4;
|
||||
|
||||
/**
|
||||
* @Author bingor
|
||||
* @Date 2022/10/18 10:05
|
||||
* @Description: com.msb.chain.servlet.v1
|
||||
* @Version: 1.0
|
||||
*/
|
||||
public interface Filter {
|
||||
public void doFilter(Request request, Response response, FilterChain chain);
|
||||
}
|
@ -0,0 +1,34 @@
|
||||
package com.msb.chain.servlet.v4;/**
|
||||
* @Author bingor
|
||||
* @Date 2022/10/18 10:09
|
||||
* @Description: com.msb.chain.servlet.v1
|
||||
* @Version: 1.0
|
||||
*/
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
*@ClassName ChainFilter
|
||||
*@Description TODO
|
||||
*@Author bingor
|
||||
*@Date 2022/10/18 10:09
|
||||
*@Version 3.0
|
||||
*/
|
||||
public class FilterChain {
|
||||
private List<Filter> filters = new ArrayList<>();
|
||||
private int index = 0;
|
||||
|
||||
public FilterChain addFilter(Filter filter) {
|
||||
filters.add(filter);
|
||||
return this;
|
||||
}
|
||||
|
||||
public void doFilter(Request request, Response response) {
|
||||
if(index == filters.size()) return;
|
||||
Filter filter = filters.get(index);
|
||||
index++;
|
||||
filter.doFilter(request, response, this);
|
||||
return;
|
||||
}
|
||||
}
|
@ -0,0 +1,28 @@
|
||||
package com.msb.chain.servlet.v4;/**
|
||||
* @Author bingor
|
||||
* @Date 2022/10/18 10:11
|
||||
* @Description: com.msb.chain.servlet.v1
|
||||
* @Version: 1.0
|
||||
*/
|
||||
|
||||
/**
|
||||
*@ClassName Main
|
||||
*@Description TODO
|
||||
*@Author bingor
|
||||
*@Date 2022/10/18 10:11
|
||||
*@Version 3.0
|
||||
*/
|
||||
public class Main {
|
||||
public static void main(String[] args) {
|
||||
FilterChain chain = new FilterChain();
|
||||
Request request = new Request();
|
||||
request.setStr("request:");
|
||||
Response response = new Response();
|
||||
response.setStr("response:");
|
||||
|
||||
chain.addFilter(new OneFilter()).addFilter(new TwoFilter());
|
||||
chain.doFilter(request, response);
|
||||
System.out.println(request.getStr());
|
||||
System.out.println(response.getStr());
|
||||
}
|
||||
}
|
@ -0,0 +1,22 @@
|
||||
package com.msb.chain.servlet.v4;/**
|
||||
* @Author bingor
|
||||
* @Date 2022/10/18 10:05
|
||||
* @Description: com.msb.chain.servlet.v1
|
||||
* @Version: 1.0
|
||||
*/
|
||||
|
||||
/**
|
||||
*@ClassName HtmlFilter
|
||||
*@Description TODO
|
||||
*@Author bingor
|
||||
*@Date 2022/10/18 10:05
|
||||
*@Version 3.0
|
||||
*/
|
||||
public class OneFilter implements Filter {
|
||||
@Override
|
||||
public void doFilter(Request request, Response response, FilterChain chain) {
|
||||
request.setStr(request.getStr() + "-OneFilter");
|
||||
chain.doFilter(request, response);
|
||||
response.setStr(response.getStr() + "-OneFilter");
|
||||
}
|
||||
}
|
@ -0,0 +1,25 @@
|
||||
package com.msb.chain.servlet.v4;/**
|
||||
* @Author bingor
|
||||
* @Date 2022/10/18 10:04
|
||||
* @Description: com.msb.chain.servlet.v1
|
||||
* @Version: 1.0
|
||||
*/
|
||||
|
||||
/**
|
||||
*@ClassName Request
|
||||
*@Description TODO
|
||||
*@Author bingor
|
||||
*@Date 2022/10/18 10:04
|
||||
*@Version 3.0
|
||||
*/
|
||||
public class Request {
|
||||
private String str;
|
||||
|
||||
public String getStr() {
|
||||
return str;
|
||||
}
|
||||
|
||||
public void setStr(String str) {
|
||||
this.str = str;
|
||||
}
|
||||
}
|
@ -0,0 +1,25 @@
|
||||
package com.msb.chain.servlet.v4;/**
|
||||
* @Author bingor
|
||||
* @Date 2022/10/18 10:04
|
||||
* @Description: com.msb.chain.servlet.v1
|
||||
* @Version: 1.0
|
||||
*/
|
||||
|
||||
/**
|
||||
*@ClassName Request
|
||||
*@Description TODO
|
||||
*@Author bingor
|
||||
*@Date 2022/10/18 10:04
|
||||
*@Version 3.0
|
||||
*/
|
||||
public class Response {
|
||||
private String str;
|
||||
|
||||
public String getStr() {
|
||||
return str;
|
||||
}
|
||||
|
||||
public void setStr(String str) {
|
||||
this.str = str;
|
||||
}
|
||||
}
|
@ -0,0 +1,22 @@
|
||||
package com.msb.chain.servlet.v4;/**
|
||||
* @Author bingor
|
||||
* @Date 2022/10/18 10:08
|
||||
* @Description: com.msb.chain.servlet.v1
|
||||
* @Version: 1.0
|
||||
*/
|
||||
|
||||
/**
|
||||
*@ClassName TwoFilter
|
||||
*@Description TODO
|
||||
*@Author bingor
|
||||
*@Date 2022/10/18 10:08
|
||||
*@Version 3.0
|
||||
*/
|
||||
public class TwoFilter implements Filter {
|
||||
@Override
|
||||
public void doFilter(Request request, Response response, FilterChain chain) {
|
||||
request.setStr(request.getStr() + "-TwoFilter");
|
||||
chain.doFilter(request, response);
|
||||
response.setStr(response.getStr() + "-TwoFilter");
|
||||
}
|
||||
}
|
Loading…
Reference in new issue