아파치에서 MyFaces 오케스트라는 CSS 파일에 대한 요청에 대한 모든 요청에 추가하는, 나는 conversationContext
매개 변수를 제거 싶어 적절한 브라우저 캐싱을 제공한다. Bozho으로정적 리소스에 대한 오케스트라 converstation 컨텍스트 매개 변수를 제거하는 방법?
내가 오케스트라가 찾고있는 속성을 설정하는 필터를 구현했습니다 제안했다.
public class ResourceFilter implements Filter {
@Override
public void doFilter(ServletRequest request, ServletResponse theResponse, FilterChain theChain) throws IOException, ServletException {
if(shouldNotAppendConversation(request)) {
request.setAttribute(RequestParameterServletFilter.REQUEST_PARAM_FILTER_CALLED, Boolean.TRUE);
}
theChain.doFilter(request, theResponse);
}
private boolean shouldNotAppendConversation(ServletRequest theRequest) {
HttpServletRequest aRequest = (HttpServletRequest) theRequest;
String aPath = aRequest.getRequestURI();
if(aPath.endsWith(".css.jsf")) {
return true;
}
return false;
}
@Override
public void init(FilterConfig theFilterConfig) throws ServletException {
}
@Override
public void destroy() {
}
}
매개 변수가 작동하지 않는 경우에도 요청마다 계속 추가됩니다. 디버깅하는 동안, 필자는 jsf 사이트에 대한 요청에 의해 필터가 처음으로 발견된다는 것을 알았습니다. 해당 요청에 conversation context
을 포함하고자하므로 필터는 요청을 체인의 다음 필터로 직접 전달합니다. 필터에 도달하는 다음 요청 (일반적으로 CSS 파일 요청)에는 요청에 이미 conversation context
이 포함되어 있습니다. 내가 항상 속성 설정에 필터를 수정하면
이상한 것은,이다, 모든 요청은 conversation context
속성이 없습니다. 그러나 이는 conversation context
도 jsf 사이트 요청에 포함되어 있지 않음을 의미합니다.
jsf 사이트의 생성 된 HTML에있는 CSS 파일에 대한 링크에도 conversation context
속성이 포함되어 있는지 여부는 필터 구현에 따라 다릅니다. 두 번째 요청에 이미 conversation context
매개 변수가 포함 된 이유는 무엇입니까? 오케스트라뿐 아니라 속성이 설정되지 않은 요청에 대한 모든 요청에 conversation context
매개 변수를 추가 왜 이해가 안
.
어떻게 제대로 작동하려면 필터를 구현할 수있다?