• java_day30_javaWeb三大组件之过滤器Filter


    过滤器filter

    一.简介及原理

      1.Filter也称之为过滤器,管理web服务器的所有web资源,如jsp,servlet,html,图片等.如实现URL级别的权限访问控制

      2.Filter接口中有一个doFilter方法,配置对哪个web资源进行拦截后,WEB服务器每次在调用web资源的service方法之前,都会先调用一下filter的doFilter方法,request请求和response响应都会进入配置的filter,根据filter内的代码决定客户端请求到的服务器的资源,如拦截,动态页面静态化等处理

    二.过滤器注册和映射Filter

      1.注册

      <filter>
        <filter-name>FirstFilter</filter-name>  //Filter名
        <filter-class>com.lanou3g.code0523.FirstFilter</filter-class> //Filter的全限定类名
      </filter>

      2.映射:通过web.xml注册,也可以通过注解@WebFilter注册
    <filter-mapping>元素用于设置一个 Filter 所负责拦截的资源。一个Filter拦截的资源可通过两种方式来指定:Servlet 名称和资源访问的请求路径
      <filter-name>子元素用于设置filter的注册名称。该值必须是在<filter>元素中声明过的过滤器的名字
      <url-pattern>设置 filter 所拦截的请求路径(过滤器关联的URL样式)
      <servlet-name>指定过滤器所拦截的Servlet名称。
      <dispatcher>指定过滤器所拦截的资源被 Servlet 容器调用的方式,可以是REQUEST,INCLUDE,FORWARD和ERROR之一,默认REQUEST。用户可以设置多个<dispatcher> 子元素用来指定 Filter 对资源的多种调用方式进行拦截。

    <filter-mapping>
        <filter-name>testFilter</filter-name>   //映射的过滤器名称
        <url-pattern>/index.jsp</url-pattern>  //拦截的URL
        <dispatcher>REQUEST</dispatcher>  //拦截request请求及请求重定向
        <dispatcher>FORWARD</dispatcher>  //拦截请求转发
    </filter-mapping>

     <dispatcher> 子元素可以设置的值及其意义:
        REQUEST:当用户直接访问页面时,Web容器将会调用过滤器。如果目标资源是通过RequestDispatcher的include()或forward()方法访问
    时,那么该过滤器就不会被调用。
        INCLUDE:拦截请求包含.
        FORWARD:拦截请求转发.
        ERROR:如果目标资源是通过声明式异常处理机制调用时,那么该过滤器将被调用。除此之外,过滤器不会被调用。

  • 相关阅读:
    经典的笔试题python操作数据库和python设计模式【多测师_王sir】
    上证所python笔试题【多测师_王sir】
    银行移动消费信贷业务梳理【多测师_王sir】
    查看log.txt 日志文件中包含关键字x123或者x124的行,以及该行前后10行内容,并输出到out.txt中【多测师_王sir】【Linux题目】
    文件权限设置
    windows OpenSSH WARNING: UNPROTECTED PRIVATE KEY FILE!
    vue对象合并
    elk安装配置
    ElasticSearch
    Elastic Search之Search API(Query DSL)、字段类查询、复合查询
  • 原文地址:https://www.cnblogs.com/memo-song/p/9078212.html
Copyright © 2020-2023  润新知