표준 서블릿 API는이 기능을 지원하지 않습니다. Tuckey 와 유사한 rewrite-URL 필터를 사용하거나 (아파치 HTTPD와 매우 유사한 mod_rewrite
) doFilter()
필터 청취 방법에 체크를 추가 할 수 있습니다 /*
.
String path = ((HttpServletRequest) request).getRequestURI();
if (path.startsWith("/specialpath/")) {
chain.doFilter(request, response); // Just continue chain.
} else {
// Do your business stuff here for all paths other than /specialpath.
}
필요한 경우 무시할 경로를 init-param
필터로 지정하여 web.xml
어쨌든 제어 할 수 있습니다 . 다음과 같이 필터에서 얻을 수 있습니다.
private String pathToBeIgnored;
public void init(FilterConfig config) {
pathToBeIgnored = config.getInitParameter("pathToBeIgnored");
}
필터는 제 3 자 API의 일부이며 따라서 당신은보다 구체적인에서 매핑, 수정할 수없는 경우 url-pattern
, 예를 들어, /otherfilterpath/*
및에 새로운 필터를 생성 /*
하는 앞으로 제 3 자 필터와 일치하는 경로를.
String path = ((HttpServletRequest) request).getRequestURI();
if (path.startsWith("/specialpath/")) {
chain.doFilter(request, response); // Just continue chain.
} else {
request.getRequestDispatcher("/otherfilterpath" + path).forward(request, response);
}
이 필터가 무한 루프에서 자신을 호출하지 않도록하려면 필터 REQUEST
만 수신하고 (제외) 필터 를 써야 FORWARD
합니다.
또한보십시오: