1.创建拦截器类实现HandlerInterceptor

//该拦截器类必须实现HandlerInterceptor接口,手动覆盖其中的方法
public class MyInterceptor1 implements HandlerInterceptor {//目标方法执行之前执行@Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {System.out.println("preHandle");return true;//这一步如果返回false,则下面所有的东西都不会被执行}//目标方法执行之后,视图返回之前执行@Overridepublic void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {System.out.println("postHandle");}//在整个流程都执行完毕之后执行@Overridepublic void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {System.out.println("afterCompletion");}
}

2.创建目标类

@Controller
public class TargetController {@RequestMapping("/target")public ModelAndView show(){System.out.println("目标资源执行....");ModelAndView modelAndView = new ModelAndView();modelAndView.addObject("name","zsh");modelAndView.setViewName("index");return modelAndView;}
}

3.在spring-mvc配置文件中指明拦截器类

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:mvc="http://www.springframework.org/schema/mvc"xmlns:context="http://www.springframework.org/schema/context"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/context  http://www.springframework.org/schema/context/spring-context.xsdhttp://www.springframework.org/schema/mvc  http://www.springframework.org/schema/mvc/spring-mvc.xsd"><!--注解驱动--><mvc:annotation-driven/><!--    扫描controller包下的类--><context:component-scan base-package="com.hao.controller"/><!--    配置内部资源视图解析器--><bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"><property name="prefix" value="/"></property><property name="suffix" value=".jsp"></property></bean><!--开放静态资源访问权限--><mvc:default-servlet-handler/>
<!--    <mvc:resources mapping="/js/**" location="/js/"/>--><!--    配置拦截器--><mvc:interceptors><mvc:interceptor>
<!--            对哪些资源执行拦截操作--><mvc:mapping path="/**"/><!-- 可以添加多个拦截器--><bean class="com.hao.interceptor.MyInterceptor1"/></mvc:interceptor></mvc:interceptors>
</beans>

4.web.xml配置前端控制器

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns="http://java.sun.com/xml/ns/javaee"xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"id="WebApp_ID" version="3.0"><!--    配置springMVC的核心配置控制器DispatcherServlet--><servlet><servlet-name>DispatcherServlet</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><init-param><param-name>contextConfigLocation</param-name><param-value>classpath:spring-mvc.xml</param-value></init-param><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>DispatcherServlet</servlet-name><url-pattern>/</url-pattern></servlet-mapping><!--    配置监听器--><listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener><!--    全局初始化参数,告诉配置文件路径--><context-param><param-name>contextConfigLocation</param-name><param-value>classpath:applicationContext.xml</param-value></context-param><!--    配置编码过滤器--><filter><filter-name>CharacterEncoding</filter-name><filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class><init-param><param-name>encoding</param-name><param-value>utf-8</param-value></init-param></filter><filter-mapping><filter-name>CharacterEncoding</filter-name><url-pattern>/*</url-pattern></filter-mapping>
</web-app>

5.启动tomcat进行测试,访问http://localhost:8080/target
控制台结果:


拦截器方法说明:
1.preHandler:返回false,表示请求结束;后面的Interceptor和controller都不会再执行

2.postHandler:目标方法执行之后,视图返回之前执行,所以可以对这个方法中的Controller处理之后的ModelAndView进行修改

3.afterCompletion:当前端控制器渲染了视图之后执行

SpringMVC-拦截器快速入门相关推荐

  1. SpringMVC拦截器-快速入门(应用)

    自定义拦截器很简单,只有如下三步: ①创建拦截器类实现HandlerInterceptor接口 ②配置拦截器 ③测试拦截器的拦截效果 编写拦截器: public class MyInterceptor ...

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

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

  3. java拦截器_springMVC入门(八)------拦截器

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

  4. springMVC 拦截器

    为什么80%的码农都做不了架构师?>>>    实现springMVC 拦截器步骤: 1.定义拦截器类××××HandlerInterceptor  继承HandlerInterce ...

  5. springmvc 拦截器、国际化、验证

    2019独角兽企业重金招聘Python工程师标准>>> springmvc 拦截器 继承了HandlerIntercepter的类可以作为拦截器类: package com.yawn ...

  6. Spring+SpringMVC+MyBatis深入学习及搭建(十七)——SpringMVC拦截器

    转载请注明出处:http://www.cnblogs.com/Joanna-Yan/p/7098753.html 前面讲到:Spring+SpringMVC+MyBatis深入学习及搭建(十六)--S ...

  7. SpringMVC拦截器与异常处理

    SpringMVC拦截器与异常处理 参考文章: (1)SpringMVC拦截器与异常处理 (2)https://www.cnblogs.com/luckgood/p/9724057.html 备忘一下 ...

  8. SpringMVC拦截器2(资源和权限管理)(作为补充说明)

    SpringMVC拦截器(资源和权限管理) 1.DispatcherServlet SpringMVC具有统一的入口DispatcherServlet,所有的请求都通过DispatcherServle ...

  9. SpringMVC拦截器HandlerInterceptor原理及使用

    在使用SpringMVC拦截器的时候,我们接触的最多的便是HandlerInterceptor接口,因为我们所有的自定义拦截器都必须要实现HandlerInterceptor接口,那么就先从Handl ...

  10. Java Servlet 过滤器与 springmvc 拦截器的区别?

    前言:在工作中,遇到需要记录日志的情况,不知道该选择过滤器还是拦截器,故总结了一下. servlet 过滤器 定义 java过滤器能够对目标资源的请求和响应进行截取.过滤器的工作方式分为四种 应用场景 ...

最新文章

  1. java和python的web自动化有什么区别-Python和Java哪个更适合做自动化测试?
  2. 【产品干货】幼年产品狗如何养成?这是完全自我修炼教程!
  3. 曙光服务器2008系统,在中科曙光I620-G20服務器上安裝Windows 2008 R2 系統步驟
  4. 虚拟成像技术_AI帝国将崛起,国内幻真虚拟成像技术第一家
  5. Cortex-M3 的SVC、PendSV异常,与操作系统(ucos实时系统)(转)
  6. nodejs 安装后 npm-v 无效,node全局环境配置
  7. 中如何构造有参和无惨_导数中构造函数的神力你应该借助一下
  8. 多线程下单例设计模式的实现
  9. Base64编码工具类
  10. switchhosts使用
  11. 软件企业 选择CodeMeter的十大理由
  12. Sprint回顾会议
  13. 陈强老师公开课笔记1——如何区别中介效应、调节效应与交互效应?
  14. 三层交换机实现不同vlan间通信
  15. Evevt Loop 事件循环
  16. 爱奇艺很高兴接受元宇宙及其概念
  17. GME轧空事件的战后处置和思考
  18. 自控考研复习 自我梳理(三) 知识来自网络,纯为总结侵权即删(二阶系统)
  19. 旅行商问题回溯法求解
  20. 解决傻妞掉线、装死等系列问题,screen守护永不掉线

热门文章

  1. loj 1210 (求最少的加边数使得图变成强连通)
  2. sicily 1762. 排座椅
  3. Android开发之系统信息——获取Android手机中SD卡内存信息
  4. 软件测试自学钢琴考级,钢琴考级被音基难倒?不要慌,跟着这款钢琴陪练APP一起练...
  5. android.mk编译动态库,安卓之Android.mk多文件以及动态库编译
  6. java map常用类及其方法_Day50.Map类常用的方法 -Java常用类、集合#、IO
  7. 台达a2_台达自动化控制系统在IC烧录机上的应用
  8. 阿里云mysql5.7 窗口函数_关于阿里云centos版本,mysql5.7的一些注意事项
  9. mysql回退事务使用_MySQL事务处理及字符集和校对顺序
  10. 为了OFFER | 腾讯2020校招后端《解压字符串》