拦截所有ibatissql执行_springMVC入门(八)------拦截器

SSM框架是java开发最常用的框架组合,作为视图层的框架SPring MVC框架有着极其广泛的应用,很多的小可爱在Java学习的框架阶段存在着诸多的迷茫,今天小编将手把手的带领大家进行三大框架之一的Spring MVC框架的学习,本学习课程分为七个阶段,让大家学习不在迷茫今天主要进行Spring MVC 框架的基本讲解.

d34d4cbedf1b063c2690e3e53a163c23.png

简介

springMVC拦截器针对处理器映射器进行拦截配置

如果在某个处理器映射器中配置拦截,经过该处理器映射器映射成功的Handler最终使用该拦截器

由于springMVC支持配置多个处理器映射器,因此针对拦截器的配置也有两种,一种针对某一处理器映射器进行配置,一种针对所有处理器映射器进行配置

而实践中往往使用后者,因此接下来的测试代码也以后者为主

拦截器配置

Controller层

 @RequestMapping("/queryUser") public String queryUser(User user) { System.out.println("Handler"); return "/WEB-INF/jsp/user.jsp"; }自定义拦截器需实现HandlerInterceptor接口public class FirstHandlerInterception implements HandlerInterceptor {  /** * 执行期:进入Handler方法之前执行 * 应用:用于身份认证、身份授权 */ @Override public boolean preHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2) throws Exception { System.out.println("preHandle"); //false代表拦截,不向下执行 //true代表通过 return false; }  /** * 执行期:进入Handler方法之后,返回ModelAndView之前 * 应用:用于向ModelAndView中填充公共数据、指定统一的视图 */ @Override public void postHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, ModelAndView arg3) throws Exception { System.out.println("postHandle"); }  /** * 执行期:进入Handler完成 * 应用:用于统一异常处理、统一日志处理 */ @Override public void afterCompletion(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, Exception arg3) throws Exception { System.out.println("postHandle"); }}

springMVC配置文件中配置拦截器

  

访问URL:http://localhost:8080/springMVC/queryUser.action

执行结果,Console输出:

多拦截器测试

配置拦截器2,方式与上文所诉一致,不再赘述

访问URL:http://localhost:8080/springMVC/queryUser.action

场景1:拦截器1通过,拦截器2通过

场景2:拦截器1不通过,拦截器2不通过

场景3:拦截器1不通过,拦截器2通过

场景4:拦截器1通过,拦截器2不通过

总结:

1、所有拦截器均通过,则首先顺序执行preHandler,再执行Handler,再逆序执行postHandler,再逆序执行afterCompletion

2、只要有一个拦截器不通过,则所有postHandler不执行

3、假设有n个拦截器,若第k的拦截器不通过,则先顺序执行preHandler到第k个拦截器(包括k的preHandler),然后逆序执行afterCompletion到第(k-1)个拦截器(不包括k的afterCompletion)

上一篇:springMVC入门(七)------RESTFul风格的支持

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值