【发布时间】: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