Writing /volume1/Web/Public/dokuwiki/data/log/deprecated/2024-11-14.log failed
文書の過去の版を表示しています。
Writing /volume1/Web/Public/dokuwiki/data/log/deprecated/2024-11-14.log failed
Java Servlet Filter
servlet에 의해 동적으로 생성된 이미지를 클라이언트쪽에 캐싱시키는 방법을 소개한다.
Struts Framework를 사용하고 있다면, RequestProcessor class를 확장해서 요청처리전에 Cache-Control의 Response
header를 설정함으로써 캐쉬 설정을 할 수 있다. 1)
하지만, 동적으로 이미지를 생성하는 독자적인 servlet 2) 의 경우 RequestProcessor를 이용해 캐쉬 설정하는 것은 불가능하다. 이럴 경우의 대안으로 Servlet Filter를 사용할 수 있다.
Servlet의 요청 처리 이전에 response header의 캐쉬 설정을 함으로써 가능해진다.
ResponseHeaderFilter
response header 설정을 가능하게 하는 filter의 예를 소개한다. 컴파일된 소스는 http://www.jspbook.com/jspbook.jar로부터 구할 수 있다.
package com.jspbook; import java.io.*; import javax.servlet.*; import javax.servlet.http.*; import java.util.*; public class ResponseHeaderFilter implements Filter { FilterConfig fc; public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException { HttpServletResponse response = (HttpServletResponse) res; // set the provided HTTP response parameters for (Enumeration e=fc.getInitParameterNames(); e.hasMoreElements();) { String headerName = (String)e.nextElement(); response.addHeader(headerName, fc.getInitParameter(headerName)); } // pass the request/response on chain.doFilter(req, response); } public void init(FilterConfig filterConfig) { this.fc = filterConfig; } public void destroy() { this.fc = null; } }
reference
1.http://www.onjava.com/pub/a/onjava/2004/03/03/filters.html?page=1 : Another Java Servlet Filter Most Web Applications Should Have