拦截器是AOP具体的应用

只能使用SpringMVC自己的组件有效

之拦截访问控制器方法的请求,

如果访问的是jsp、html、css、img、js这一类的静态资源,则不会拦截


演示:

编写一个拦截器的测试,控制器的方法

package cn.dai.controller;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController; /**
* @author ArkD42
* @file SpringMVC
* @create 2020 - 05 - 07 - 19:39
*/ @RestController
public class TestController { @GetMapping("/visit")
public String test(){
System.out.println("The TestController.test() has bean browsed !!!");
return "browsed access!!!";
}
}

编写拦截器实现类,实现拦截方法

package cn.dai.interceptor;

import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; /**
* @author ArkD42
* @file SpringMVC
* @create 2020 - 05 - 07 - 19:35
*/ public class SpringMvcInterceptor implements HandlerInterceptor { @Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
System.out.println("- - - - 拦截前 - - - -");
return true;
} @Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
System.out.println("- - - - 处理后 - - - -");
} @Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
System.out.println("- - - - 清理 - - - -");
}
}

注册到SpringMVC中

    <!-- 拦截器 -->
<mvc:interceptors> <mvc:interceptor>
<!-- /** 表示所有的请求,/*只表示当前一个路由的情况下实现 -->
<mvc:mapping path="/**"/> <!-- 具体是哪个类来完成的 -->
<bean class="cn.dai.interceptor.SpringMvcInterceptor" />
</mvc:interceptor> </mvc:interceptors>

访问结果


【SpringMVC】11 拦截器的更多相关文章

  1. SpringMVC—Struts2拦截器学习网址整理

    引自:http://blog.csdn.net/wp1603710463/article/details/49982683 SpringMVC—Struts2拦截器学习网址整理 最近项目中遇到权限相关 ...

  2. springmvc的拦截器

    什么是拦截器                                                         java里的拦截器是动态拦截action调用的对象.它提供了一种机制可以使 ...

  3. SpringMVC利用拦截器防止SQL注入

    引言 随着互联网的发展,人们在享受互联网带来的便捷的服务的时候,也面临着个人的隐私泄漏的问题.小到一个拥有用户系统的小型论坛,大到各个大型的银行机构,互联网安全问题都显得格外重要.而这些网站的背后,则 ...

  4. SpringMVC经典系列-14自己定义SpringMVC的拦截器---【LinusZhu】

    注意:此文章是个人原创.希望有转载须要的朋友们标明文章出处.假设各位朋友们认为写的还好,就给个赞哈.你的鼓舞是我创作的最大动力,LinusZhu在此表示十分感谢,当然文章中如有纰漏,请联系linusz ...

  5. 基于注解风格的Spring-MVC的拦截器

    基于注解风格的Spring-MVC的拦截器 Spring-MVC如何使用拦截器,官方文档只给出了非注解风格的例子.那么基于注解风格如何使用拦截器呢? 基于注解基本上有2个可使用的定义类,分别是Defa ...

  6. SpringMVC 学习-拦截器 HandlerInterceptor 类

    一.拦截器 HandlerInterceptor 类的作用 SpringMVC 的拦截器类似于 Servlet 开发中的过滤器 Filter,用于对处理器进行预处理和后处理. 二.怎么使用呢? 1. ...

  7. springMVC的拦截器工作流程

    首先,springmvc的拦截器配置在这就不多说了.主要讲一下拦截器的三个方法的执行顺序. preHandle方法一定是最先执行的方法,如果它返回为false下面的方法均不执行. postHandle ...

  8. 转 :关于springmvc使用拦截器

    原博客: http://elim.iteye.com/blog/1750680 SpringMVC 中的Interceptor 拦截器也是相当重要和相当有用的,它的主要作用是拦截用户的请求并进行相应的 ...

  9. springmvc中拦截器与springmvc全局异常处理器的问题

    最近在做一个练手的小项目, 系统架构中用了springmvc的全局异常处理器, 做了系统的统一异常处理. 后来加入了springmvc的拦截器, 为了一些需求, 在拦截器中的 preHandle 方法 ...

  10. springMVC配置拦截器、过滤器、前端控制器时遇到的问题总结

    1.业务场景:使用vuejs+springMVC+spring框架搭建一个mis系统,集成SSO单点登录: 2.遇到问题:使用interceptor拦截器配置SSO单点登录,直接敲域名,或者ip+端口 ...

随机推荐

  1. minos 2.3 中断虚拟化——GICv2 管理

    首发公号:Rand_cs 硬件肯定需要软件配合,这一节就来实战 GICv2 首先准备好 GICv2 手册:https://developer.arm.com/documentation/ihi0048 ...

  2. 反外挂 DDos UDP 攻击只需客户端 开着游戏客户端

    #include<WINSOCK2.H> #include<iostream> #include<string> using namespace std; #inc ...

  3. windows 批处理 检查并启动 windows 服务

    windows 批处理 检查并启动 windows 服务 set srvname="YSWindowsService" sc query|find %srvname% && ...

  4. ssh基础

    SSH安全登录 机器准备 什么是SSH SSH 或 Secure Shell 协议是一种远程管理协议,允许用户通过 Internet 访问.控制和修改其远程服务器. SSH 服务是作为未加密 Teln ...

  5. 父类和子类对象的获取值的方式验证,通过父类属性的方式获取不到值,需要使用get方法

    父类和子类对象的获取值的方式验证,通过父类属性的方式获取不到值,需要使用get方法 静态属性通过类.属性的方式获取,对象获取使用get方法获取 package com.example.core.myd ...

  6. JAVA日期当天0点0分0秒

    LocalDateTime LocalDateTime ldt = LocalDateTime.now(); LocalDateTime todayZero = LocalDateTime.of(ld ...

  7. pytest_terminal_summary重写收集测试报告并发送邮件,报错"Argument(s) {'Config'} are declared in the hookimpl but can not be found in the hookspec"

    步骤: 1.conftest.py文件,重写pytest_terminal_summary(terminalreporter, exitstatus, config) 2.run执行pytest.ma ...

  8. TGI 基准测试

    本文主要探讨 TGI 的小兄弟 - TGI 基准测试工具.它能帮助我们超越简单的吞吐量指标,对 TGI 进行更全面的性能剖析,以更好地了解如何根据实际需求对服务进行调优并按需作出最佳的权衡及决策.如果 ...

  9. Win10升Win11后出现的文件系统错误-1073740771的几种可能解决办法

    可能性1 有服务没能启动 键盘按"WIN+R"打开"运行"对话框 在对话框输入"services.msc"点击"确定"按 ...

  10. MySQL日志(redo log、binlog)刷盘策略

    通过上篇文章,我们知道MySQL是采用两段提交策略来保证事务的原子性的,redo log刷盘的时机是在事务提交的commit阶段采取刷盘的,在此之前,redo log都存在于redo log buff ...