Servlet规范系列 之 <filter>、<filter

您所在的位置:网站首页 pattern在html Servlet规范系列 之 <filter>、<filter

Servlet规范系列 之 <filter>、<filter

#Servlet规范系列 之 <filter>、<filter| 来源: 网络整理| 查看: 265

欢迎大家关注本博,同时欢迎大家评论交流,可以给个赞哦!!!

  在Servlet2.x版本中,配置依然是通过web.xml的形式进行配置的,升级到Servlet3.x后,可以依赖注解式方式进行配置。

  本文只对、进行分析解释。

  XSD地址

  可以从官方获取web.xml的XSD约束web-app_2_5.xsd,同时web-app_2_5.xsd依赖javaee_5.xsd、jsp_2_1.xsd、javaee_web_services_client_1_2.xsd三个约束,地址如下:

  · http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd

  · http://java.sun.com/xml/ns/javaee/javaee_5.xsd

  · http://java.sun.com/xml/ns/javaee/jsp_2_1.xsd

  · http://java.sun.com/xml/ns/javaee/javaee_web_services_client_1_2.xsd

  、配置

  根据XSD约束,整理出、节点内容如下:

  、详解

  ·

   ·

    Filter的显示名称,并不参与实际编码。

   ·

    Filter的描述信息,并不参与实际编码。

​    对于和来说,都是用来描述Filter,尽管是程序运行的非必要元素,但当需要管理的Filter较多时,较好的编写和可以使得配置更具有可读性和可维护性,在一些Filter管理工具中可以更加方便的进行管理。

   ·

    为当前Filter指定一个图标,包含、两个子标签,可以定义小、大图标,在一些Filter管理工具中可以通过图标进行辨认。

   ·

    指定Filter的名称,这个名称会参与其他配置。

   ·

​    配置Filter的具体实现类,该类需要实现Filter接口,并完成init、doFilter、destroy方法的实现。

   ·

    用来定义参数,包含、、三个子标签。用于描述配置的信息,用于自定参数名,用于指定参数值。可以配置多个参数,通过FilterConfig类的public String getInitParameter(String name)获取指定参数、public Enumeration getInitParameterNames()获取所有参数的参数名。

  ·

   定义Servlet和URL之家的映射。

   ·

    已经定义的Filter名称。

   · 和

    可以根据通配URL路径对符合条件的请求进行过滤处理。

​    可以根据指定Servlet处理的请求进行过滤处理,Servlet根据其自身配置的配置进行过滤。

    Filter和Servlet对于配置的处理稍有差异,原因在于Servlet针对单一请求只能存在一个Servlet进行处理,Filter存在链式处理,只要配置满足条件,就会把当前Filter加入到过滤器链中。

    中可以像中的一样,配置多个,但是只有最后一个会其作用。如果需要过滤多个路径时,可以定义多个标签,每个下分别配置其自身的。

   ·

    Servlet API 2.4版本规范中在中增加了元素,其有四个可选值:REQUEST、FORWARD、INCLUDE、ERROR。使得Filter将会按照配置过滤处理请求:

     ① REQUEST:直接从客户端过来的Request。

     ② FORWARD:通过Forward过来的Request。

     ③ INCLUDE:通过Include过来的Request。

     ④ ERROR:通过过来的Request。

     ⑤ 默认值:如果没有指定任何元素,默认值是REQUEST。

  总结

​  Filter在日常开发中使用概率还是很高的,实际引用中可能不会涉及到所有标签,但是更充分的了解Filter的配置,有利于在遇到问题时,更准确、更快速的解决问题。

  若文中存在错误和不足,欢迎指正!

本博微信公众号“超哥说码”,欢迎大家订阅,公众号正在完善中,会及时将更优质的博文推送于您! 在这里插入图片描述



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3