Mybatis全局配置及映射关系的实现
328
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小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~