SpringMVC-拦截器快速入门
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-拦截器快速入门相关推荐
- SpringMVC拦截器-快速入门(应用)
自定义拦截器很简单,只有如下三步: ①创建拦截器类实现HandlerInterceptor接口 ②配置拦截器 ③测试拦截器的拦截效果 编写拦截器: public class MyInterceptor ...
- SpringMVC拦截器-快速入门详解(应用)
拦截器在预处理后什么情况下会执行目标资源,什么情况下不执行目标资源,以及在有多个拦截器的情况下拦截器的执行顺序是什么? 再编写一个拦截器2, public class MyInterceptor2 i ...
- java拦截器_springMVC入门(八)------拦截器
SSM框架是java开发最常用的框架组合,作为视图层的框架SPring MVC框架有着极其广泛的应用,很多的小可爱在Java学习的框架阶段存在着诸多的迷茫,今天小编将手把手的带领大家进行三大框架之一的 ...
- springMVC 拦截器
为什么80%的码农都做不了架构师?>>> 实现springMVC 拦截器步骤: 1.定义拦截器类××××HandlerInterceptor 继承HandlerInterce ...
- springmvc 拦截器、国际化、验证
2019独角兽企业重金招聘Python工程师标准>>> springmvc 拦截器 继承了HandlerIntercepter的类可以作为拦截器类: package com.yawn ...
- Spring+SpringMVC+MyBatis深入学习及搭建(十七)——SpringMVC拦截器
转载请注明出处:http://www.cnblogs.com/Joanna-Yan/p/7098753.html 前面讲到:Spring+SpringMVC+MyBatis深入学习及搭建(十六)--S ...
- SpringMVC拦截器与异常处理
SpringMVC拦截器与异常处理 参考文章: (1)SpringMVC拦截器与异常处理 (2)https://www.cnblogs.com/luckgood/p/9724057.html 备忘一下 ...
- SpringMVC拦截器2(资源和权限管理)(作为补充说明)
SpringMVC拦截器(资源和权限管理) 1.DispatcherServlet SpringMVC具有统一的入口DispatcherServlet,所有的请求都通过DispatcherServle ...
- SpringMVC拦截器HandlerInterceptor原理及使用
在使用SpringMVC拦截器的时候,我们接触的最多的便是HandlerInterceptor接口,因为我们所有的自定义拦截器都必须要实现HandlerInterceptor接口,那么就先从Handl ...
- Java Servlet 过滤器与 springmvc 拦截器的区别?
前言:在工作中,遇到需要记录日志的情况,不知道该选择过滤器还是拦截器,故总结了一下. servlet 过滤器 定义 java过滤器能够对目标资源的请求和响应进行截取.过滤器的工作方式分为四种 应用场景 ...
最新文章
- java和python的web自动化有什么区别-Python和Java哪个更适合做自动化测试?
- 【产品干货】幼年产品狗如何养成?这是完全自我修炼教程!
- 曙光服务器2008系统,在中科曙光I620-G20服務器上安裝Windows 2008 R2 系統步驟
- 虚拟成像技术_AI帝国将崛起,国内幻真虚拟成像技术第一家
- Cortex-M3 的SVC、PendSV异常,与操作系统(ucos实时系统)(转)
- nodejs 安装后 npm-v 无效,node全局环境配置
- 中如何构造有参和无惨_导数中构造函数的神力你应该借助一下
- 多线程下单例设计模式的实现
- Base64编码工具类
- switchhosts使用
- 软件企业 选择CodeMeter的十大理由
- Sprint回顾会议
- 陈强老师公开课笔记1——如何区别中介效应、调节效应与交互效应?
- 三层交换机实现不同vlan间通信
- Evevt Loop 事件循环
- 爱奇艺很高兴接受元宇宙及其概念
- GME轧空事件的战后处置和思考
- 自控考研复习 自我梳理(三) 知识来自网络,纯为总结侵权即删(二阶系统)
- 旅行商问题回溯法求解
- 解决傻妞掉线、装死等系列问题,screen守护永不掉线
热门文章
- loj 1210 (求最少的加边数使得图变成强连通)
- sicily 1762. 排座椅
- Android开发之系统信息——获取Android手机中SD卡内存信息
- 软件测试自学钢琴考级,钢琴考级被音基难倒?不要慌,跟着这款钢琴陪练APP一起练...
- android.mk编译动态库,安卓之Android.mk多文件以及动态库编译
- java map常用类及其方法_Day50.Map类常用的方法 -Java常用类、集合#、IO
- 台达a2_台达自动化控制系统在IC烧录机上的应用
- 阿里云mysql5.7 窗口函数_关于阿里云centos版本,mysql5.7的一些注意事项
- mysql回退事务使用_MySQL事务处理及字符集和校对顺序
- 为了OFFER | 腾讯2020校招后端《解压字符串》