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

      

  • 相关阅读:
    git 合并多个commit
    git 修改 Commit Message
    git rebase 命令介绍
    git 忘记切换分支,误将代码commit到了别的分支的解决方法
    会话层的会话和传输层中的连接的区别
    Goland 安装 k8s 源码 的步骤
    Linux export 命令的作用
    Linux 执行脚本时 source 和 . 和 sh 和 ./ 的区别
    the connection to the server 6443 was refused
    Kubernetes 创建 Pod 时,背后到底发生了什么?
  • 原文地址:https://www.cnblogs.com/yangHS/p/11195291.html
Copyright © 2011-2022 走看看