美文网首页
20170907-Spring MVC拦截器

20170907-Spring MVC拦截器

作者: c5fc16271aee | 来源:发表于2017-09-08 16:48 被阅读0次

Filter(过滤器)与Interceptor(拦截器)的区别

区别

①拦截器interceptor是基于Java的反射机制的,而过滤器Filter是基于函数回调,实现的filter接口中doFilter方法就是回调函数。

②拦截器interceptor不依赖于servlet容器,过滤器Filter依赖于servlet容器,没有servlet容器就无法来回调doFilter方法。

③拦截器interceptor只能对action请求起作用,而过滤器Filter则可以对几乎所有的请求起作用,Filter的过滤范围比Interceptor大,Filter除了过滤请求外通过通配符可以保护页面,图片,文件等等。

④拦截器interceptor可以访问action上下文、值栈里的对象,而过滤器Filter不能访问。

⑤在action的生命周期中,拦截器interceptor可以多次被调用,而过滤器Filter只能在容器初始化时被调用一次。

⑥拦截器interceptor可以获取IOC容器中的各个bean,而过滤器Filter就不行,这点很重要,在拦截器里注入一个service,可以调用业务逻辑。

知识点补充:JAVA反射机制

JAVA反射机制——是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象的功能称为~~~~~~。

JAVA反射机制主要提供以下的功能:

     ①、在运行时判断任意一个对象所属的类

     ②、在运行时构造任意一个类的对象

     ③、在运行时判断任意一个类所具有的成员变量和方法

     ④、在运行时调用任意一个对象的方法

     ⑤、生成动态代理

自定义拦截器

Spring MVC也可以使用拦截器对请求进行拦截处理,用户可以自定义拦截器来实现特定的功能,自定义的拦截器必须实现HandlerInterceptor接口

–preHandle():这个方法在业务处理器处理请求之前被调用,在该方法中对用户请求request进行处理。如果程序员决定该拦截器对请求进行拦截处理后还要调用其他的拦截器,或者是业务处理器去进行处理,则返回true;如果程序员决定不需要再调用其他的组件去处理请求,则返回false。

–postHandle():这个方法在业务处理器处理完请求后,但是DispatcherServlet向客户端返回响应前被调用,在该方法中对用户请求request进行处理。

–afterCompletion():这个方法在DispatcherServlet完全处理完请求后被调用,可以在该方法中进行一些资源清理的操作。

步骤:

第一步:创建一个类,实现HandlerInterceptor接口

第二步:在springmvc配置文件里面添加配置

相关文章

  • 20170907-Spring MVC拦截器

    Filter(过滤器)与Interceptor(拦截器)的区别 区别 ①拦截器interceptor是基于Java...

  • Spring15-拦截器

    定义拦截器 定义拦截器需要实现HandlerInterceptor 配置拦截器 注意:spring mvc的拦截器...

  • 【SpringMVC】拦截器与异常处理

    SpringMVC的拦截器 01-SpringMVC拦截器-拦截器的作用(理解) Spring MVC 的拦截器类...

  • SpringMVC的拦截器

    SpringMVC的拦截器 01-SpringMVC拦截器-拦截器的作用(理解) Spring MVC 的拦截器类...

  • SpringMVC(二)

    一、 SpringMVC的拦截器拦截器 : InterceptorSpring MVC 的拦截器类似于Servl...

  • SpringMVC 的处理拦截器

    0 目录 1 Spring MVC拦截器流程图 2 Spring Web MVC 的处理器拦截器 类似于Servl...

  • Spring知识点

    一、自定义拦截器 spring mvc拦截器和spring拦截器相比,它里面能够获取HttpServletRequ...

  • spring拦截器

    自定义拦截器 继承HandlerInterceptor xml文件里注册拦截器

  • Springboot 系列(六)Spring Boot web

    1. 拦截器 Springboot 中的 Interceptor 拦截器也就是 mvc 中的拦截器,只是省去了 x...

  • asp.net拦截器

    一 拦截器又称过滤器。 asp.net mvc本身是自带3种拦截器:Action拦截器、Result拦截器、Exc...

网友评论

      本文标题:20170907-Spring MVC拦截器

      本文链接:https://www.haomeiwen.com/subject/udnijxtx.html