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