Java SpringMVC实现自定义拦截器

网友投稿 302 2022-08-20


Java SpringMVC实现自定义拦截器

目录SpringMVC实现自定义拦截器1拦截器(interceptor)的作用2拦截器和过滤器区别3.实现过程3.1创建拦截器类实现HandlerInterceptor接口3.2配置拦截器3.3测试拦截器的拦截效果3.4编写jsp页面3.5测试结果4.拦截器链5.知识小结总结

SpringMVC实现自定义拦截器yrYbmK

1 拦截器(interceptor)的作用

Spring MVC 的拦截器类似于 Servlet 开发中的过滤器 Filter,用于对处理器进行预处理和后处理。

将拦截器按一定的顺序联结成一条链,这条链称为拦截器链(InterceptorChain)。在访问被拦截的方法或字段时,拦截器链中的拦截器就会按其之前定义的顺序被调用。拦截器也是AOP思想的具体实现。

2 拦截器和过滤器区别

关于interceptor和filter的区别,如图所示:

3.实现过程

步骤分析:

1.创建拦截器类实现HandlerInterceptor接口

2.配置拦截器

3.测试拦截器的拦截效果

3.1创建拦截器类实现HandlerInterceptor接口

public class MyInterceptor implements HandlerInterceptor {

/**

* preHandle: 在目标方法执行之前 进行拦截 return false:不放行

*/

@Override

public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {

System.out.println("preHandle1....");

return true;

}

/**

* postHandle: 在目标方法执行之后,视图对象返回之前,执行的方法

*/

@Override

public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {

System.out.println("postHandle1....");

}

/**

* afterCompletion:在流程都执行完成后,执行的方法

*/

@Override

http:// public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {

System.out.println("afterCompletion1....");

}

}

3.2配置拦截器

3.3测试拦截器的拦截效果

@RequestMapping("/target")

public String targetMethed(){

System.out.println("目标方法执行了");

return "interceptor";

}

3.4编写jsp页面

<% System.out.println("视图执行了....");%>

3.5测试结果

4. 拦截器链

开发中拦截器可以单独使用,也可以同时使用多个拦截器形成一条拦截器链。开发步骤和单个拦截器是一样的,只不过注册的时候注册多个,注意这里注册的顺序就代表拦截器执行的顺序。

同上,再编写一个MyHandlerInterceptor2操作,测试执行顺序:

5. 知识小结

拦截器中的方法说明如下:

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注我们的更多内容!


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Java9新特性Module模块化编程示例演绎
下一篇:JProfiler11使用教程之JVM调优问题小结
相关文章

 发表评论

暂时没有评论,来抢沙发吧~