通过自定义Filter(适配器),并实现浏览器的禁止缓存的Filter

来源:互联网 发布:网络教育大学有哪些 编辑:程序博客网 时间:2024/05/29 19:45
@WebFilter("/Filter")public class Filter extends HttpFilter {@Overridepublic void doFilter(HttpServletRequest request, HttpServletResponse response, FilterChain chain)throws IOException, ServletException {<strong>response.setDateHeader("Expires", -1);      response.setHeader("Cache-Control", "no-cache");      response.setHeader("Pragma", "no-cache");</strong>chain.doFilter(request, response);}}
/** * Filter适配器 * 自定义的 HttpFilter,实现自Filter接口 * @author zxg * */public abstract class HttpFilter implements Filter{/** * 用于保存FilterConfig对象 * FilterConfig:可以获取部署文件(web.xml)中分配的过滤器的初始化参数 */private FilterConfig filterConfig;/** * 不建议子类直接覆盖。 * 若直接覆盖,可能会导致 filterConfig 成员变量初始化失败 */@Overridepublic void init(FilterConfig filterConfig) throws ServletException {this.filterConfig = filterConfig;init();}/** * 供子类继承的初始化方法,可以通过getFilterConfig() 获取filterConfig对象 */protected void init() {}/** * 直接返回init(ServletConfig) 的filterConfig 对象 */public FilterConfig getFilterConfig() {return filterConfig;}/** * 原生的 doFilter 方法, 在方法内部把 ServletRequest 和 ServletResponse  * 转为了 HttpServletRequest 和 HttpServletResponse, 并调用了  * doFilter(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) *  * 若编写 Filter 的过滤方法不建议直接继承该方法. 而建议继承 * doFilter(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) */@Overridepublic void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain)throws IOException, ServletException {HttpServletRequest request = (HttpServletRequest) req;HttpServletResponse response = (HttpServletResponse) resp;doFilter(request,response,chain);}/** * 抽象方法,为http请求置顶,必须实现的方法。 * @param request * @param response * @param chain * @throws IOException * @throws ServletException */public abstract void doFilter(HttpServletRequest request,HttpServletResponse response,FilterChain chain)throws IOException, ServletException;/** * 空的destroy方法 */@Overridepublic void destroy() {}}


0 0
原创粉丝点击