Ответные листы в стойках 1 - PullRequest
2 голосов
/ 10 января 2012

Мы используем распорки 1.2.4 в нашем приложении. В настоящее время приложение позволяет кэшировать защищенные (https) страницы (контроль кеша не применяется). Я хочу изменить это поведение и добавить контроль кэша: no-cache для всех ответов.

Предоставляет ли Struts некоторую структуру для глобальной политики кэширования?

Как я могу это сделать?

UPDATE: Приведенный ниже ответ от Bon Espresso сработал. Я должен был добавить «Cache-Control», «no-cache, no-store, must-revalidate» и заголовок даты для фильтра.

1 Ответ

2 голосов
/ 10 января 2012

Используйте фильтр, настройте свой фильтр в 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);
    }

}
...