java - struts 1 中的响应过滤器

标签 java struts struts-1

我们在我们的应用程序中使用 struts 1.2.4。 该应用程序当前允许缓存安全 (https) 页面(不强制执行缓存控制)。我想更改该行为并向所有响应添加 cache-control:no-cache。

struts 是否提供了一些框架来全局设置缓存策略?

我该怎么做?

更新: Bon Espresso 的以下回答有效。我不得不补充 “缓存控制”,“无缓存,无存储,必须重新验证” 和过滤器的日期标题。

最佳答案

使用过滤器,在 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);
    }

}

关于java - struts 1 中的响应过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8799699/

相关文章:

java - Twitter4j 按位置+黑名单词查询

java - h :panelGrid 中具有多个子组件的自定义 Facelets 标记

javascript - 使用 Struts 1.x 和 AJAX 设置 session 变量

java - ActionError 消息未显示在 UI 中

java - Struts 1.2 中的控制流(生命周期)

java - BigInteger 使用什么算法将整数转换为字节数组

java - 多线程 Java 代理

java - 计算网页的访问者数量 - JavaScript 和 Struts

java - Struts - <html :errors/> to display error messages in Jsp? 的替代方案

java - json 解析器异常