디자인 모드 filter
public class Main {
public static void main(String agrs[]) {
Request request = new Request();
request.requestString = "< HTML>";
Response response = new Response();
response.responseString = "resposne :";
FilterChain chain = new FilterChain();
chain.addFilter(new HtmlFilter());
FilterChain chain1 = new FilterChain();
chain1.addFilter(new HtmlFilter());
chain1.addFilter(new SensitiveFilter());
//chain.addFilter(chain1);
chain1.doFilter(request, response, chain1);
System.out.println("request:" + request.requestString);
System.out.println("response:" + response.responseString);
}
}
interface Filter {
void doFilter(Request request, Response response, FilterChain chain);
}
class HtmlFilter implements Filter {
@Override
public void doFilter(Request request, Response response, FilterChain chain) {
request.requestString = request.requestString.replace("<", "[");
request.requestString = request.requestString.replace(">", "]");
request.requestString += " html ";
chain.doFilter(request, response, chain);
response.responseString += " html ";
}
}
class SensitiveFilter implements Filter {
@Override
public void doFilter(Request request, Response response, FilterChain chain) {
request.requestString = request.requestString.replace(" ", "mingan");
request.requestString += " sensitive ";
chain.doFilter(request, response, chain);
response.responseString += " sensitive ";
}
}
class FilterChain implements Filter {
private List<Filter> filters = new ArrayList<Filter>();
public FilterChain addFilter(Filter filter) {
if (!filters.contains(filter)) {
filters.add(filter);
}
return this;
}
int index = 0;
@Override
public void doFilter(Request request, Response response, FilterChain chain) {
if (index == filters.size()) {
return;
}
Filter f = filters.get(index);
index++;
f.doFilter(request, response, chain);
}
}
class Request {
String requestString;
}
class Response {
String responseString;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.