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() {}
    }
    

      

  • 相关阅读:
    QtAV编译
    git 恢复到刚刚clone下来的状态
    select2 清除选中项解决办法
    mysql: 查看某库表大小
    C# Linq 交集、并集、差集、去重
    mvc ajax访问后台时session过期无法跳转到Login页面问题解决
    Asp.net:上传文件超过了最大请求长度
    Firebug 没死,活在 Firefox DevTools 中
    vs2015 加载项目的时启动:无法启动 IIS Express Web 服务器
    Visual Studio安装SVN插件
  • 原文地址:https://www.cnblogs.com/yangHS/p/11195291.html
Copyright © 2011-2022 走看看