2012-01-10 44 views
2

我們在我們的應用程序中使用了struts 1.2.4。 該應用程序當前允許緩存安全(https)頁面(不執行緩存控制)。我想改變這種行爲,並將緩存控制:no-cache添加到所有響應中。struts中的響應篩選器1

struts是否爲全局設置緩存策略提供了一些框架?

我該怎麼做?

更新: 以下來自Bon Espresso的回答工作。我必須添加 「Cache-Control」,「no-cache,no-store,must-revalidate」 和Date header to the filter。

回答

2

使用過濾器,在web.xml中

<filter> 
    <filter-name>cacheControlFilter</filter-name> 
    <filter-class>com.package.CacheControlFilter</filter-class> 
    </filter> 
    <filter-mapping> 
    <filter-name>cacheControlFilter</filter-name> 
    <url-pattern>/*</url-pattern> 
</filter-mapping> 

而且你的過濾器類

import javax.servlet.*; 
import javax.servlet.http.HttpServletResponse; 
import java.io.IOException; 
import java.util.Date; 

public class CacheControlFilter implements Filter { 

    public void doFilter(ServletRequest request, ServletResponse response, 
         FilterChain chain) throws IOException, ServletException { 

     HttpServletResponse resp = (HttpServletResponse) response; 
     resp.setHeader("Expires", "Tue, 25 Dec 1993 23:59:59 GMT"); 
     resp.setHeader("Last-Modified", new Date().toString()); 
     resp.setHeader("Cache-Control", "no-cache"); 
     resp.setHeader("Pragma", "no-cache"); 

     chain.doFilter(request, response); 
    } 

} 
+0

我想這個配置過濾器。標題正在設置。但是我可以通過按下後退按鈕來查看頁面。是否有其他標題我應該設置? – 2012-01-10 09:22:00