SpringMVC框架是一个成熟的优秀java web开发框架,学习研究框架设计有助于我们更好的理解和掌握spring MVC,设计和写出更符合的结构和代码。

本节主要是研读SpringMVC框架中的过滤器设置,以编码处理过滤器为例来学习框架内是怎样设置过滤器的。

aaarticlea/png;base64,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" alt="" />

如上所示的spring-web.jar包结构所示, Spring的web包中中提供有很多过滤器,这些过滤器位于org.springframework.web.filter并且理所当然地实现了javax.servlet.Filter,

不过实现的方式有以下几类

(1) 直接实现Filter,这一类过滤器只有CompositeFilter;

(2) 继承抽象类GenericFilterBean,该类实现了javax.servlet.Filter,这一类的过滤器只有一个,即DelegatingFilterProxy;

(3) 继承抽象类OncePerRequestFilter,该类为GenericFilterBean的直接子类,这一类过滤器包括CharacterEncodingFilter、HiddenHttpMethodFilter、HttpPutFormContentFilter、RequestContextFilter和ShallowEtagHeaderFilter;

(4) 继承抽象类AbstractRequestLoggingFilter,该类为OncePerRequestFilter的直接子类,这一类过滤器包括CommonsRequestLoggingFilter、Log4jNestedDiagnosticContextFilter和ServletContextRequestLoggingFilter。

过滤器放在容器结构的什么位置?

过滤器放在web资源之前,可以在请求抵达它所应用的web资源(可以是一个Servlet、一个Jsp页面,甚至是一个HTML页面)之前截获进入的请求,并且在它返回到客户之前截获输出请求。Filter:用来拦截请求,处于客户端与被请求资源之间,目的是重用代码。Filter链,在web.xml中哪个先配置,哪个就先调用。在filter中也可以配置一些初始化参数。

Java中的Filter 并不是一个标准的Servlet ,它不能处理用户请求,也不能对客户端生成响应。 主要用于对HttpServletRequest 进行预处理,也可以对HttpServletResponse 进行后处理,是个典型的处理链。

Filter 有如下几个种类:

l  用户授权的Filter: Filter 负责检查用户请求,根据请求过滤用户非法请求。

l  日志Filter: 详细记录某些特殊的用户请求。

l  负责解码的Filter: 包括对非标准编码的请求解码。

l  能改变XML 内容的XSLTFilter 等。

Filter 有如下几个用处

l  在HttpServletRequest 到达Servlet 之前,拦截客户的HttpServletRequest 。

l  根据需要检查HttpServletRequest ,也可以修改HttpServletRequest 头和数据。

l  在HttpServletResponse 到达客户端之前,拦截HttpServletResponse 。

l  根据需要检查HttpServletResponse ,可以修改HttpServletResponse 头和数据。

创建一个Filter 只需两个步骤
(1)创建Filter 处理类:

(2)在web.xml 文件中配置Filter 。

创建Filter 必须实现javax.servlet.Filter 接口,在该接口中定义了三个方法。 
• void init(FilterConfig config): 用于完成Filter 的初始化。 
• void destroy(): 用于Filter 销毁前,完成某些资源的回收。 
• void doFilter(ServletRequest request, ServletResponse response,FilterChain
chain): 实现过滤功能,该方法就是对每个请求及响应增加的额外处理。

过滤器Filter也具有生命周期:init()->doFilter()->destroy(),由部署文件中的filter元素驱动。

参照编码过滤器示例来查看怎么实现的

  1. 首先配置在web.xml文件里的规则如下
<!-- 编码处理过滤器 -->

   <filter>

      <filter-name>encodingFilter</filter-name>

      <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>

      <init-param>

         <param-name>encoding</param-name>

         <param-value>utf-8</param-value>

      </init-param>

      <init-param>

         <param-name>forceEncoding</param-name>

         <param-value>true</param-value>

      </init-param>

    </filter>

    <filter-mapping>

       <filter-name>encodingFilter</filter-name>

       <url-pattern>*.do</url-pattern>

    </filter-mapping>

其中,filter-class 为过滤器Filter类,init-prama为注入的set参数

Filter-mapping中的url-pattern为过滤的url类型

类的继承关系

CharacterEncodingFilter r类继承了 OncePerRequestFilter

public class CharacterEncodingFilter extends OncePerRequestFilter

 

OncePerRequestFilter 类又继承了GenericFilterBean

public abstract class OncePerRequestFilter extends GenericFilterBean

 

public abstract class GenericFilterBean implements

       Filter, BeanNameAware, EnvironmentAware, ServletContextAware, InitializingBean, DisposableBean

 

 

设置编码的核心代码为

@Override

   protected void doFilterInternal(

         HttpServletRequest request, HttpServletResponse response, FilterChain filterChain)

         throws ServletException, IOException {

      if (this.encoding != null && (this.forceEncoding || request.getCharacterEncoding() == null)) {

         request.setCharacterEncoding(this.encoding);

         if (this.forceEncoding) {

            response.setCharacterEncoding(this.encoding);

         }

      }

      filterChain.doFilter(request, response);

   }

其中filterChain为过滤器链,表示执行完这个过滤器之后接着执行下一个过滤器

区别

我们在使用过滤器时,通常没必要知道GenericFilterBean、OncePerRequestFilter和AbstractRequestLoggingFilter,但不防碍我们了解这几个类,就上文所述,AbstractRequestLoggingFilter继承自OncePerRequestFilter,OncePerRequestFilter继承自GenericFilterBean,所以我们知道,genericFilterBean是任何类型的过滤器的一个比较方便的超类,这个类主要实现的就是从web.xml文件中取得init-param中设定的值,然后对Filter进行初始化(当然,其子类可以覆盖init方法)。

OncePerRequestFilter继承自GenericFilterBean,那么它自然知道怎么去获取配置文件中的属性及其值,所以其重点不在于取值,而在于确保在接收到一个request后,每个filter只执行一次,它的子类只需要关注Filter的具体实现即doFilterInternal。

AbstractRequestLoggingFilter是对OncePerRequestFilter的扩展,它除了遗传了其父类及祖先类的所有功能外,还在doFilterInternal中决定了在过滤之前和之后执行的事件,它的子类关注的是beforeRequest和afterRequest。

总体来说,这三个类分别执行了Filter的某部分功能,当然,具体如何执行由它们的子类规定,若你需要实现自己的过滤器,也可以根据上文所述继承你所需要的类。

SpringMVC 过滤器Filter使用解析的更多相关文章

  1. spring mvc过滤器filter

    SpringMVC 过滤器Filter使用解析 1.如上所示的spring-web.jar包结构所示, Spring的web包中中提供有很多过滤器,这些过滤器位于org.springframework ...

  2. java 过滤器(Filter)与springMVC 拦截器(interceptor)的实现案例

    java 过滤器Filter: package com.sun.test.aircraft.filter;import javax.servlet.*;import java.io.IOExcepti ...

  3. SpringBoot系列教程web篇之过滤器Filter使用指南

    web三大组件之一Filter,可以说是很多小伙伴学习java web时最早接触的知识点了,然而学得早不代表就用得多.基本上,如果不是让你从0到1写一个web应用(或者说即便从0到1写一个web应用) ...

  4. SpringMVC 源码深度解析&lt;context:component-scan&gt;(扫描和注冊的注解Bean)

    我们在SpringMVC开发项目中,有的用注解和XML配置Bean,这两种都各有自己的优势,数据源配置比較经经常使用XML配置.控制层依赖的service比較经经常使用注解等(在部署时比較不会改变的) ...

  5. java springmvc Log4j filter等(稍微完善一下项目)

    仅供参考-接上文 springmvc  1.设置Log4jConfigListener日志监听(可以为开发调试.发布后运行的意外调试.等) 在src/main/resources目录下新建log4j. ...

  6. 过滤器(Filter)和拦截器(Interceptor)

    过滤器(Filter) Servlet中的过滤器Filter是实现了javax.servlet.Filter接口的服务器端程序.它依赖于servlet容器,在实现上,基于函数回调,它可以对几乎所有请求 ...

  7. 一、变量.二、过滤器(filter).三、标签(tag).四、条件分支tag.五、迭代器tag.六、自定义过滤器与标签.七、全系统过滤器(了解)

    一.变量 ''' 1.视图函数可以通过两种方式将变量传递给模板页面 -- render(request, 'test_page.html', {'变量key1': '变量值1', ..., '变量ke ...

  8. SpringMVC 过滤器

    参考: http://qq-22530757.iteye.com/blog/2177513 http://www.jdon.com/dl/best/spring-security.html https ...

  9. SpringBoot系列教程web篇之过滤器Filter使用指南扩展篇

    前面一篇博文介绍了在 SpringBoot 中使用 Filter 的两种使用方式,这里介绍另外一种直接将 Filter 当做 Spring 的 Bean 来使用的方式,并且在这种使用方式下,Filte ...

随机推荐

  1. datagrid 编辑

    spark:DataGrid编辑状态进入需要在选中一行高亮状态之后,再次点击该单元格,这样,相信非常符合开发人员的控制手法及大众使用习惯,这,是一点非常好的改良. 同时,它取缔了itemEditEnd ...

  2. grid布局笔记

    1.应用 display: grid 的元素.这是所有网格项(Grid Items)的直接父级元素.即容器 2.网格容器(Grid Container)的子元素(直接子元素). 3.注意:在 网格容器 ...

  3. 在HI3531上移植和运行QT4.8.6

    在HI3531上移植和运行QT4.8.6 1.            前言: 近段有点时间,想把QT移植到HI3531上,在网上查找了很多资料,但都不是很全面,有些有问题也没有得到很好的体现. 2.  ...

  4. 20165101刘天野 2017-2018-2 《Java程序设计》 结对编程练习_四则运算(第二周)

    20165101刘天野 2017-2018-2 <Java程序设计> 结对编程练习_四则运算(第二周) 一.需求分析 能随机生成n道四则运算题目,n由使用者输入 支持分数运算 支持多运算符 ...

  5. [mongodb] MMAP 和wiredTiger 的比较

    mongodb 现在有两款存储引擎  MMAPv1 和 WireTiger,当然了除了这两款存储引擎还有其他的存储引擎了. 如: 内存引擎:现在的mongodb 版本中已经有了,主要的cache 服务 ...

  6. C3p0的参数

    C3p0的参数设置:ComboPooledDataSource和BasicDataSource一样提供了一个用于关闭数据源的close()方法,这样我们就可以保证Spring容器关闭时数据源能够成功释 ...

  7. MySQL的索引实现原理

    MySQL数据库索引总结使用索引的原由数据结构Hash.平衡二叉树.B树.B+树区别机械硬盘.固态硬盘区别Myisam与Innodb B+树的区别MySQL中的索引什么数据结构B+树中的节点到底存放多 ...

  8. sql行列互换

    出现这个结果: sql如下: end) as erjidu from a GROUP BY y;

  9. Treflection01_Class对象_构造函数_创建对象

    1. package reflectionZ; import java.lang.reflect.Constructor; import java.util.List; public class Tr ...

  10. MVC3;0问题与知识点

        1.    代码中@Html.BeginForm不对,应 @using(Html.BeginForm){}   2.   不设置 注解 required属性中的 errormessage,则错 ...