SpringMVC的HandlerInterceptor 与servlet的Filter

HandlerInterceptor与Filter的区别

HandlerInterceptor是SpringMVC提供的是供Spring容器管理的

SpringMVC的HandlerInterceptor 与servlet的Filter

实现方法:

实现HandlerInterceptor接口

SpringMVC的HandlerInterceptor 与servlet的Filter

在上述三个方法中

preHandle方法指代请求未进入Controller层 执行 只有当该方法的返回值为true时才会执行Controller层的业务逻辑

postHandle方法指代请求访问完成后所执行

afterComletion方法指代渲染完成前端页面所执行

配置需要在SpringMVC的dispatchServlet.xml中配置

SpringMVC的HandlerInterceptor 与servlet的Filter

上述配置中

<mvc:mapping path="/manage/**"/>代表拦截 /manage下的所有请求
<mvc:exclude-mapping path="/manage/user/login.do"/> 代表 /manage下的所有请求都被拦截除去 /user/login.do请求
<bean class="com.mmall.common.ManagerIntercept"/>代表  指定拦截的请求的类  其中所做的处理

Filter是供Servlet管理的

SpringMVC的HandlerInterceptor 与servlet的Filter

SpringMVC的HandlerInterceptor 与servlet的Filter

init()方法:初始化参数,在创建Filter时自动调用。当我们需要设置初始化参数的时候,可以写到该方法中。(只能执行一遍)

doFilter()方法:拦截到要执行的请求时,doFilter就会执行。这里面写我们对请求和响应的预处理。
destroy()方法:在销毁Filter时自动调用。

 

(有着急事先不写了 日后补上 20190312 薛某人留)