zoukankan      html  css  js  c++  java
  • JavaWeb_创建HttpFilter

    package com.demo.filter;
    
    import javax.servlet.*;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import java.io.IOException;
    
    /**
     * 自定义HttpFilter,实现Filter接口
     */
    public abstract class HttpFilter implements Filter {
    
        //用于保存filterConfig对象
        private FilterConfig filterConfig;
    
        /**
         * 不建议子类直接覆盖,若直接覆盖,有可能会导致filterConfig成员变量初始化失败
         * @param filterConfig
         * @throws ServletException
         */
        @Override
        public void init(FilterConfig filterConfig) throws ServletException {
            this.filterConfig = filterConfig;
            init();
        }
    
        /**
         * 供子类继承的初始化方法,可以通过getFilterConfig()获取FilterConfig对象
         */
        protected void init() {
        }
    
        /**
         * 直接返回init(ServletConfig)的FilterConfig对象
         * @return
         */
    
        public FilterConfig getFilterConfig() {
            return filterConfig;
        }
    
        /**
         * 原生的doFilter方法,在方法内部把ServletRequest和ServletResponse
         * 转为了HttpServletRequest和HttpServeltResponse,并调用了doFilter(HttpServletResponse response, HttpServletRequest request,FilterChain filterChain)
         * @param servletRequest
         * @param servletResponse
         * @param filterChain
         * @throws IOException
         * @throws ServletException
         */
        @Override
        public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
            HttpServletRequest request = (HttpServletRequest) servletRequest;
            HttpServletResponse response = (HttpServletResponse) servletResponse;
            doFilter(request,response,filterChain);
        }
        //抽象方法,为Http请求定制,必须实现的方法
        public abstract void doFilter(HttpServletResponse response, HttpServletRequest request,FilterChain filterChain) throws IOException, ServletException;
    
        @Override
        public void destroy() {}
    }
    

      

  • 相关阅读:
    HDU 5336 The mook jong (DP)
    HDU 1686 Oulipo (KMP——统计模式串出现次数)
    hdu 1711Number Sequence (KMP——输出模式串第一次出现位置)
    POJ Borg Maze (BFS+最小生成树)
    POJ 2349 Arctic Network (最小生成树第K大(小)边)
    hdu 1712 ACboy needs your help (dp 分组背包)
    hdu 1181 变形课 (bfs)
    hdu 2069 Coin Change (dp 母函数 )
    hdu 1171 Big Event in HDU(dp 01背包 母函数)
    hdu 1398 Square Coins (母函数)
  • 原文地址:https://www.cnblogs.com/yangHS/p/11195291.html
Copyright © 2011-2022 走看看