| package eclipselink.example.mysports.application.view; |
| |
| import java.io.IOException; |
| |
| import javax.faces.application.ResourceHandler; |
| import javax.servlet.Filter; |
| import javax.servlet.FilterChain; |
| import javax.servlet.FilterConfig; |
| import javax.servlet.ServletException; |
| import javax.servlet.ServletRequest; |
| import javax.servlet.ServletResponse; |
| import javax.servlet.annotation.WebFilter; |
| import javax.servlet.http.HttpServletRequest; |
| import javax.servlet.http.HttpServletResponse; |
| |
| @WebFilter(servletNames = { "Faces Servlet" }) |
| // Must match <servlet-name> of your FacesServlet. |
| public class NoCacheFilter implements Filter { |
| |
| @Override |
| public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { |
| HttpServletRequest req = (HttpServletRequest) request; |
| HttpServletResponse res = (HttpServletResponse) response; |
| |
| if (!req.getRequestURI().startsWith(req.getContextPath() + ResourceHandler.RESOURCE_IDENTIFIER)) { // Skip |
| // JSF |
| // resources |
| // (CSS/JS/Images/etc) |
| res.setHeader("Cache-Control", "no-cache, no-store, must-revalidate"); // HTTP |
| // 1.1. |
| res.setHeader("Pragma", "no-cache"); // HTTP 1.0. |
| res.setDateHeader("Expires", 0); // Proxies. |
| } |
| |
| chain.doFilter(request, response); |
| } |
| |
| @Override |
| public void destroy() { |
| // TODO Auto-generated method stub |
| |
| } |
| |
| @Override |
| public void init(FilterConfig arg0) throws ServletException { |
| // TODO Auto-generated method stub |
| |
| } |
| |
| // ... |
| } |