【问题标题】:SpringMVC - How to clear cache only when user log outSpringMVC - 如何仅在用户注销时清除缓存
【发布时间】:2017-02-16 07:49:12
【问题描述】:

目前我有以下过滤器可以清除每个请求的缓存:

public class CacheControlFilter implements Filter {

    private static final Logger logger = Logger.getLogger(CacheControlFilter.class);


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

        HttpServletResponse resp = (HttpServletResponse) response;


        resp.setDateHeader("Expires", 0);
        resp.setHeader("Last-Modified", new Date().toString());
        resp.setHeader("Cache-Control", "no-store, no-cache, must-revalidate, max-age=0, post-check=0, pre-check=0");
        resp.setHeader("Pragma", "no-cache");
        resp.setHeader("X-Content-Type-Options", "nosniff");
        resp.setHeader("X-Frame-Options", "DENY");
        chain.doFilter(request, response);
    }

请在下面找到注销方法:

  @RequestMapping(value = "/logout", method = RequestMethod.GET)
    public String logout(ModelMap model, HttpServletRequest request) {

    SecurityContextHolder.clearContext();
    request.getSession().invalidate();


    return Constants.LOGOUT;

    }

有没有办法只在用户注销而不是每次请求时清除缓存?我想将我的静态文件(css 文件、js 文件)存储在缓存中并仅在用户注销时清除它

欢迎任何建议。

谢谢

【问题讨论】:

  • 哪个缓存? CacheControlFilter 不会清除任何内容。
  • 可以在web.xml中指定过滤器只在路径为/logout时运行
  • 响应头缓存被清除
  • 哦,我怎样才能指定过滤器只运行 /logout?
  • 感谢 Eric 工作顺利干杯

标签: javascript java jquery spring-mvc caching


【解决方案1】:

你可以通过初始化类注册缓存过滤器。

protected Filter[] getServletFilters() {
    return new Filter[]{new CacheControlFilter()};
}

祝你好运

【讨论】:

    【解决方案2】:

    请将您的过滤器配置到 web.xml 中,仅用于 /logout url,例如:

    <filter>
            <filter-name>CacheControlFilter</filter-name>
            <filter-class><YOUR_PACKAGE>.CacheControlFilter</filter-class>
        </filter>
        <filter-mapping>
            <filter-name>CacheControlFilter</filter-name>
            <url-pattern>/logout</url-pattern>
        </filter-mapping>
    

    如果不使用 web.xml,请参阅此链接:

    https://www.mkyong.com/spring-mvc/how-to-register-a-servlet-filter-in-spring-mvc/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-10
      • 1970-01-01
      • 1970-01-01
      • 2023-03-13
      • 1970-01-01
      相关资源
      最近更新 更多