• 过滤器(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.     }

  • 相关阅读:
    12.数组的初始化和引用
    Day-07 修改 Nginx 配置文件
    java计算机毕业设计西安市城市绿地管理系统源码+系统+数据库+lw文档
    ffmpeg实现视频播放 ----------- Javacv
    基于Python+Django框架的多人在线聊天程序
    [pytorch笔记]02-主要组成模块&基础实战
    pytorch的卷积层池化层和非线性变化 和机器学习线性回归
    LeetCode SQL专项练习 (8) 计算函数
    多目标条件下矿山充填材料配比优化
    springboot手机推荐网站毕业设计源码052329
  • 原文地址:https://blog.csdn.net/weixin_62332711/article/details/126069758