• 过滤器(Filter)


    目录

    一、如何使用过滤器(Filter)

    二、通过xml配置过滤器

    三、通过注解配置过滤器

    四、获取过滤器配置的初始化参数

    五、过滤器的使用


    一、如何使用过滤器(Filter)

    1.1.写一个类实现(implements)Filter(过滤器类,Filter来自 Filter - javax,servlet接口中)。

    1.2.重写三个方法

    1. @Override
    2. public void destroy() {
    3.    System.out.println("过滤器被销毁!");
    4. }
    5. @Override
    6. public void doFilter(ServletRequest arg0, ServletResponse arg1, FilterChain arg2)
    7.       throws IOException, ServletException {
    8.    System.out.println("请求被过滤器拦截!");
    9. }
    10.     
    11. @Override
    12. public void init(FilterConfig arg0) throws ServletException {
    13.    // 启动Tomcat服务
    14.    System.out.println("过滤器初始化/过滤器被创建!");
    15. }

    二、通过xml配置过滤器


     
          loginFilter
          com.zking.filter.LoginFilter
          
          
          
              
              name
              
              张三
          

          
          
              
              sex
              
              
          

     


     
          loginFilter
          
          
          /index.jsp
          
          
          *.jsp
          
          /home/index.jsp
          
          /*

     

    三、通过注解配置过滤器

    3.1.配置过滤单个请求

    @WebFilter("/index.jsp")

    3.2.配置过滤多个请求

    1. @WebFilter(
    2.             filterName = "loginFilter",// 配置过滤器的名字,相当于<filter-name>loginFilterfilter-name>
    3.             urlPatterns = {"/login.jsp","/index.jsp"},// 配置过滤多个页面
    4.             // 配置初始化参数
    5.             initParams = {
    6.                     @WebInitParam(name = "name",value = "张三"),
    7.                     @WebInitParam(name = "sex",value = "男")
    8.             }
    9.         )


    四、获取过滤器配置的初始化参数

    1. // 在初始化方法里面获取配置的初始化参数
    2.     @Override
    3.     public void init(FilterConfig arg0) throws ServletException {
    4.         // 启动Tomcat服务
    5.         System.out.println("过滤器初始化/过滤器被创建!");
    6.         
    7.         // 获取配置的初始化参数
    8.         String name = arg0.getInitParameter("name");
    9.         String sex = arg0.getInitParameter("sex");
    10.         System.out.println("name = " + name);
    11.         System.out.println("sex = " + sex);
    12.         
    13.     }


    五、过滤器的使用

    1.转换参数arg0和arg1(要使用request和response里面的方法)
    HttpServletRequest req = (HttpServletRequest)arg0;
    HttpServletResponse resp = (HttpServletResponse)arg1;
            
    2.设置编码
    req.setCharacterEncoding("utf-8");
    resp.setContentType("html/text;charset=utf-8");

    3.使用arg2.doFilter(arg0, arg1),可以让被过滤器拦截的页面继续正常运行。

    1. public void doFilter(ServletRequest arg0, ServletResponse arg1, FilterChain arg2)
    2.             throws IOException, ServletException {
    3.         System.out.println("请求被过滤器拦截!");
    4.         
    5.         // 转换参数arg0和arg1
    6.         HttpServletRequest req = (HttpServletRequest)arg0;
    7.         HttpServletResponse resp = (HttpServletResponse)arg1;
    8.         
    9.         // 设置编码
    10.         resp.setContentType("html/text;charset=utf-8");
    11.         
    12.         
    13.         // 放行/继续前进
    14.         arg2.doFilter(arg0, arg1);
    15.     }

  • 相关阅读:
    metersphere 接口自动化
    WebRTC实现简单音视频通话功能
    聊聊Flink必知必会(二)
    牛客月赛55 至至子的长链剖分
    【C++ 学习 ⑳】- 详解二叉搜索树
    点云从入门到精通技术详解100篇-LiDAR 点云与影像匹配点云的滤波方法研究与应用(中)
    RHEL、CentOS和Fedora之间的区别!
    探索AIGC人工智能(Midjourney篇)(四)
    MAC地址修改工具 WiFiSpoof 简体中文
    chap4Web服务器-入门学习笔记
  • 原文地址:https://blog.csdn.net/weixin_62332711/article/details/126069758