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

简介

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风格的支持

java拦截器_springMVC入门(八)------拦截器相关推荐

  1. springmvc java中转发_Springmvc中的转发重定向和拦截器的示例

    本文介绍了Springmvc中的转发重定向和拦截器的示例,分享给大家,具体如下: 可变参数在设计方法时,使用 数据类型...来声明参数类型,例如: public static void functio ...

  2. Java中Filter、Listener,拦截器的学习,listener、 filter、servlet 加载顺序及其详解

    Filter filter可认为是Servlet的一种"变种",它主要用于对用户请求进行预处理,也可以对HttpServletResponse进行后处理,是个典型的处理链.它与Se ...

  3. Java自定义异常、全局捕获异常、拦截器 实现动态控制登录超时

    Java自定义异常.全局捕获异常.拦截器 实现动态控制登录超时 参考文章: (1)Java自定义异常.全局捕获异常.拦截器 实现动态控制登录超时 (2)https://www.cnblogs.com/ ...

  4. (十六)ATP应用测试平台——java应用中的过滤器Filter、拦截器Interceptor、参数解析器Resolver、Aop切面,你会了吗?

    前言 过滤器Filter.拦截器Interceptor.参数解析器Resolver.Aop切面是我们应用开发中经常使用到的技术,到底该如何使用这些web附属功能, 本小节我们就分别介绍一下其各自的用法 ...

  5. SpringMVC和SpringBoot的拦截器 HandlerInterceptor 入门

    总体步骤 1.自定义一个实现HandlerInterceptor 接口的类比如SignUpHandlerInterceptor(我这边以注册登录拦截器为例). package com.example. ...

  6. SpringMVC拦截器-快速入门详解(应用)

    拦截器在预处理后什么情况下会执行目标资源,什么情况下不执行目标资源,以及在有多个拦截器的情况下拦截器的执行顺序是什么? 再编写一个拦截器2, public class MyInterceptor2 i ...

  7. MyBatis拦截器原理探究MyBatis拦截器原理探究

    MyBatis拦截器介绍 MyBatis提供了一种插件(plugin)的功能,虽然叫做插件,但其实这是拦截器功能.那么拦截器拦截MyBatis中的哪些内容呢? 我们进入官网看一看: MyBatis拦截 ...

  8. spring 两次进入拦截器_过滤器和拦截器的 6 个区别,别再傻傻分不清了

    点击上方 肉眼品世界,选择 设为星标 深度价值体系传递 作者 :程序员内点事 来源 :toutiao.com/i6834310440495874563 毕竟这两种工具开发中用到的频率都相当高,应用起来 ...

  9. 拦截器---SpringMVC(权限拦截)

    拦截器 概述 SpringMVC的处理器拦截器类似于Servlet开发中的过滤器Filter,用于对处理器进行预处理和后处理.开发者可以自己定义一些拦截器来实现特定的功能. **过滤器与拦截器的区别: ...

最新文章

  1. 谁是 2020 年最强 Python 库?年度 Top10 出炉
  2. 响应式网站建设优势有哪些?
  3. 山西计算机工程师职称英语,山西中级工程师职称在线查询
  4. 64位 iee754_IEEE754浮点表示法详解
  5. 【转载】opencl中设备内存
  6. java list 赋值jsp,在Struts中使用JavaBean和List(多行数据)类型属性-JSP教程,Java技巧及代码...
  7. 吴恩达机器学习课后作业6——使用支持向量机(svm)构建一个垃圾邮件分类器
  8. P2037 电话号码
  9. 不懂这些法律问题,你的创业融资很危险
  10. SYBASE 12.5 维护手册 3. 技术专刊
  11. Https单向认证和双向认证 认识和区别
  12. java数据透视表算法_java – 在数据透视表上对数组进行分区
  13. AceDeceiver成为首个可利用苹果DRM设计漏洞感染iOS设备的木马
  14. Java中有指针么?
  15. Vue3+Typescript+Vite实现网易云音乐年活动主导色
  16. CTFHub | Stash
  17. [转]ColdFusion简介
  18. 文献精读(1)MRD,NSCLC
  19. 画表格自动生成html语言,HTML——绘制表格-Go语言中文社区
  20. Windows10环境下,设备进入fastboot状态,fastboot无法识别到设备

热门文章

  1. c语言 指针函数pdf,C语言指针经验总结(经典).pdf
  2. Soul网关源码阅读(七)限流插件初探
  3. 学习python时间安排_Python时间和日期学习
  4. freeradius 测试mysql_在linux下安装配置mysql+freeradius
  5. Python标准库中的uuid
  6. Spring Cloud 配置中心中的native配置
  7. python程序出现了异常会执行哪个语句,python中的异常是什么?应该怎么处理异常?...
  8. java中输出a个b_下面代码输出什么 ( ) var a=0,b=0; for(;a10,b7;a++,b++){ g=a+b; } console.log(g);_学小易找答案...
  9. django url 生效_django 定制管理页面外观 模板文件不生效的解决方法
  10. java for循环 等待_java-等待在循环内按下键