• 细说 过滤篇


    一、为什么会有过滤器技术?

    我们在处理乱码的时候,几乎每个页面都要写相同的代码,是不是太繁琐?

    在网页上执行某些操作时,必须判断是用户是否登录,是否拥有权限?

    ............

    为了处理上面的这些问题,就产生了过滤器这个技术。

    二、过滤器的执行流程是怎么样子的呢?

    1. 用户访问服务器
    2. 过滤器的发挥作用:对Servlet请求进行拦截
    3. 先进入过滤器,过滤器执行。
    4. 过滤器处理完毕后,再放行,此时,请求到达Servlet/JSP
    5. Servlet处理
    6. Servlet处理完后,再回到过滤器,最后,再由tomcat服务器响应用户。

    三、如何来写过滤器

    开发步骤

    1. 写一个普通的Java类,实现Filter接口
    2. 配置过滤器
      <!-- 过滤器配置 -->
          <filter>
              <!-- 配置初始化参数 -->
              <init-param>
                  <param-name>encoding</param-name>
                  <param-value>UTF-8</param-value>
              </init-param>
              <init-param>
                  <param-name>path</param-name>
                  <param-value>c:/...</param-value>
              </init-param>
          
              <!-- 内部名称 -->
              <filter-name>hello_filter</filter-name>
              <!-- 过滤器类的全名 -->
              <filter-class>cn.itcast.a_filter_hello.HelloFilter</filter-class>
          </filter>
          <filter-mapping>
              <!-- filter内部名称 -->
              <filter-name>hello_filter</filter-name>
              <!-- 拦截所有资源 -->
              <url-pattern>/*</url-pattern>
          </filter-mapping>

    相关API

    |-- interface  Filter                过滤器核心接口
    Void  init(filterConfig);    初始化方法,在服务器启动时候执行
    Void  doFilter(request,response,filterChain);   过滤器拦截的业务处理方法
    Void destroy();               销毁过滤器实例时候调用
    
    |-- interface  FilterConfig   获取初始化参数信息
        
    String    getInitParameter(java.lang.String name) 
    Enumeration    getInitParameterNames() 
    
    |-- interface  FilterChain     过滤器链参数;一个个过滤器形成一个执行链;
        void doFilter(ServletRequest request, ServletResponse response)  ;  执行下一个过滤器或放行
  • 相关阅读:
    vue实战使用ajax请求后台数据(小白)
    jQuery实现tab栏切换效果
    jQuery下的ajax实例
    数据库之视图更新
    SQL Server 全文索引创建
    SQL Server 分区表
    数据快照 (Database Snapshot)
    FileStream
    ODBC,OLEDB,ADO,ADO.net,JDBC 理解
    拖延症?贪玩?来试试"百万金币时间管理法"
  • 原文地址:https://www.cnblogs.com/lyjs/p/5074411.html
Copyright © 2020-2023  润新知