首页 理论教育 Java服务端拦截器执行规则

Java服务端拦截器执行规则

时间:2023-11-22 理论教育 版权反馈
【摘要】:具体如下:这里HandlerInterceptor1和HandlerInterceptor2两个拦截器的拦截路径规则配置一致。请求之前定义的页面,控制台输出如下信息:HandlerInterceptor1...preHandleHandlerInterceptor2--->preHandlegetProductInfo()called with:proId=[107]HandlerInterceptor2--->postHandleHandlerInterceptor1...postHandleHandlerInterceptor2--->afterCompletionHandlerInterceptor1...afterCompletion可以自行设置拦截器方法返回的拦截标志true(放行)或者false(不放行),得出如下规律:■拦截器1放行,拦截器2 preHandle才会执行。■拦截器2 preHandle不放行,拦截器2 postHandle和afterCompletion不会执行。

Java服务端拦截器执行规则

接下来通过定义两个拦截器来观察拦截器的执行规则,定义拦截器HandlerInterceptor1和HandlerInterceptor2,两个类具体内容大致相同,都是在方法执行时打印自己的拦截器名称加方法名。HandlerInterceptor1具体如下:

HandlerInterceptor2具体如下:

然后在spring-servlet.xml文件中配置此拦截器。具体如下:

这里HandlerInterceptor1和HandlerInterceptor2两个拦截器的拦截路径规则配置一致。请求之前定义的页面,控制台输出如下信息:

HandlerInterceptor1...preHandle

HandlerInterceptor2--->preHandle

getProductInfo()called with:proId=[107]

HandlerInterceptor2--->postHandle(www.xing528.com)

HandlerInterceptor1...postHandle

HandlerInterceptor2--->afterCompletion

HandlerInterceptor1...afterCompletion

可以自行设置拦截器方法返回的拦截标志true(放行)或者false(不放行),得出如下规律:

■拦截器1放行,拦截器2 preHandle才会执行。

■拦截器2 preHandle不放行,拦截器2 postHandle和afterCompletion不会执行。

■只要有一个拦截器不放行,postHandle都不会执行。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈