所有的开发之中拦截器一定是一个必须要使用的功能,利用拦截器可以更加有效的实现数据的验证处理在SpringBoot之中所使用的拦截器与Spring中的拦截器完全一样.2.1、基础拦截器操作拦截器是一种AOP操作实现,那么在AOP之中用户一定不需要去关注拦截器的存在,用户只需要按照自己习惯的方式进行代码的编写即可。1、创建一个程序的控制器类:package com.microboot.controller;import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;import com.microboot.util.controller.AbstractBaseController;
import com.microboot.vo.Member;@Controller
public class MemberController extends AbstractBaseController{@RequestMapping(value = "/member_add_pre", method = RequestMethod.GET)public String memberAddPre(Model model) {return "member_add";}@RequestMapping(value = "/member_add", method = RequestMethod.POST)@ResponseBodypublic Object memberAdd(Member member) {return member;}}
2、定义一个member_add.html的页面实现表单定义:member_add.html<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head><title>SpringBoot模板渲染</title><link rel="icon" type="image/x-icon" href="/images/favicon.ico" /><meta http-equiv="Content-Type" content="text/html;charse=UTF-8">
</head>
<body><form th:action="@{/member_add}" method="post">用户编号:<input type="text" name="mid" value="101"/><br/>用户姓名:<input type="text" name="name" value="SMITH"/><br/><input type="submit" value="提交" /><input type="reset" value="重置" /></form>
</body>
</html>
3、此时一个正常的MVC的代码就实现完成了,随后就需要编写一个拦截器对其进行控制.为了更好的说明问题,现在将拦截器定义package com.microboot.util;import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.method.HandlerMethod;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;public class MyInterceptor implements HandlerInterceptor {private Logger log = LoggerFactory.getLogger(MyInterceptor.class);@Overridepublic boolean preHandle(HttpServletRequest arg0, HttpServletResponse arg1,
Object handler) throws Exception {HandlerMethod handlerMethod = (HandlerMethod)handler;this.log.info("【*** MyInterceptor.preHandle ***】"
+ handlerMethod.getBean().getClass().getSimpleName());// 如果返回false表示不继续请求,如果返回true表示继续请求return true;}@Overridepublic void postHandle(HttpServletRequest arg0, HttpServletResponse arg1,
Object handler, ModelAndView modelAndView)throws Exception {HandlerMethod handlerMethod = (HandlerMethod)handler;this.log.info("【*** MyInterceptor.postHandle ***】"
+ handlerMethod.getBean().getClass().getSimpleName());this.log.info("【*** MyInterceptor.postHandle ***】" + modelAndView);}@Overridepublic void afterCompletion(HttpServletRequest arg0, HttpServletResponse arg1,
Object handler, Exception arg3)throws Exception {HandlerMethod handlerMethod = (HandlerMethod)handler;this.log.info("【*** MyInterceptor.afterCompletion ***】拦截处理完毕");}}
4、那么此时如果要想使用拦截器则必须有一个拦截器的配置类。现在我们已经不再编写配置文件了,所有的配置都使用一个类完成。package com.microboot.config;import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;import com.microboot.util.MyInterceptor;@Configuration
// 定义MVC的配置
public class MyWebApplicationConfig extends WebMvcConfigurerAdapter {@Override// 进行拦截器的注册处理操作public void addInterceptors(InterceptorRegistry registry) {// 匹配路径registry.addInterceptor(new MyInterceptor()).addPathPatterns("/**");super.addInterceptors(registry);}
}

SpringBoot 基础拦截器相关推荐

  1. 【SpringBoot】拦截器使用@Autowired注入接口为null解决方法

    [SpringBoot]拦截器使用@Autowired注入接口为null解决方法 参考文章: (1)[SpringBoot]拦截器使用@Autowired注入接口为null解决方法 (2)https: ...

  2. SpringBoot——使用拦截器拦截未登录用户

    前置知识SpringBoot配置拦截器基于HandlerInterceptor接口实现,关键三个方法 preHandle()执行目标之前 postHandle()执行目标之后 afterComplet ...

  3. SpringBoot与拦截器

    自定义拦截器 package com.buba.interceptor;import com.buba.pojo.User; import org.springframework.web.servle ...

  4. SpringBoot配置拦截器导致swagger失效

    问题背景: Springboot 启用拦截器后,Swagger无法访问 原因 拦截器拦截了所有的请求,导致swagger也被拦截,当在进行鉴权的的时候,可能需要传入一些特定的参数,或者请求头信息,这样 ...

  5. springboot Interceptor拦截器excludePathPatterns失效

    springboot Interceptor拦截器excludePathPatterns失效 使用jwt和HandlerInterceptorAdapter做登录的拦截放行失效,其实更多时候不是配置文 ...

  6. springboot设置拦截器的方法

    springboot设置拦截器的方式: 1.编写一个类,在类上面加上@Configuration注解,然后继承 WebMvcConfigurerAdapter. 重写父类的方法:addIntercep ...

  7. springboot项目拦截器中获取接口返回数据_Spring Boot自定义Annotation实现接口自动幂...

    在实际的开发项目中,一个对外暴露的接口往往会面临很多次请求,我们来解释一下幂等的概念:任意多次执行所产生的影响均与一次执行的影响相同.按照这个含义,最终的含义就是 对数据库的影响只能是一次性的,不能重 ...

  8. springcloud springboot 异常拦截器 项目完善03

    springcloud springboot 异常拦截器 项目完善03 > 创建异常拦截器,在controller层没处理的异常抛出时,异常拦截器拦截后输入自定义的报错信息. 新建GlobalE ...

  9. 玩转springboot:实现springboot自定义拦截器

    一.前言 在javaee中,我们经常使用filter来做拦截器,后来有了springmvc,我们使用HandlerInterceptor进行拦截,springmvc的拦截器查看这篇文章,现在有了spr ...

最新文章

  1. ICCV 2021 | 国科大提出首个CNN和Transformer双体主干网络!Conformer准确率高达84.1%!...
  2. Spring详解:WebServlet 中不能注入Bean对象
  3. Java之【线程通信】--标志位练习
  4. 乐鑫代理启明云端分享|ESP32系列教程之三: VS Code远程连接Linux
  5. 旷厂练习生 | 小白进阶之三个月发表一篇CVPR
  6. Python之十大经典排序算法的实现和原理
  7. Arduino笔记-WeMos D1通过HTTP亮熄灯
  8. 微软发布新品被指剽窃!交涉无果,两年开源项目被迫终结
  9. 【Java进阶营】JAVA多线程基础学习二:synchronized
  10. stm32for循环几个机械周期_带你了解包装机械设备的可调度性分析
  11. Ubuntu18.04安装Mujoco、mujoco_py
  12. 微型计算机自动化控制专业,自动化专业简介
  13. 安卓第三方登录之微信登录(图文详解)
  14. 2015年春节往事小记
  15. Unity3D正交-透视混合相机的实现
  16. 设计之美 --大道至简
  17. 实体操盘手开发分销商城小程序商业模式解析
  18. 云脉文档管理小程序轻松解决文档管理难题
  19. 2021年西式面点师(初级)考试题库及西式面点师(初级)考试试题
  20. rgb的颜色转换以及十六进制转为十进制的那些事

热门文章

  1. 异步调用代码嵌套问题
  2. Zigbee 获取设备地址信息
  3. ESFramework介绍之(30)―― 消息侦察者 INetMessageSpy
  4. CentOS7Selinux设置
  5. datax源码阅读一:python文件
  6. Java解析Excel工具类(兼容xls和xlsx)
  7. springMVC源码分析
  8. 悲观锁和乐观锁和gap锁
  9. 【火炉炼AI】机器学习013-用朴素贝叶斯分类器估算个人收入阶层
  10. Running Maven project on Tomcat from Eclipse