Spring Boot笔记-拦截器相关(用户权限方面)
发布日期:2021-06-30 10:41:32
浏览次数:2
分类:技术文章
本文共 6359 字,大约阅读时间需要 21 分钟。
Spring Boot拦截器的使用
使用注解@Configuration
继承WebMvcConfigurerAdapter
重写addInterceptors添加需要拦截器地址:
运行截图如下:
后端拦截如下:
这里主要是依靠注册拦截器实现的
这里一个拦截器可以进行多个链接过滤,只需在后面加入addPathPatterns即可
程序结构如下:
WebMvcConfig.java
package com.example.demo.config;import com.example.demo.interceptor.OneInterceptor;import com.example.demo.interceptor.TwoInterceptor;import org.springframework.context.annotation.Configuration;import org.springframework.web.servlet.config.annotation.InterceptorRegistry;import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;@Configurationpublic class WebMvcConfig extends WebMvcConfigurerAdapter { @Override public void addInterceptors(InterceptorRegistry registry) { registry.addInterceptor(new OneInterceptor()).addPathPatterns("/one/**"); registry.addInterceptor(new TwoInterceptor()).addPathPatterns("/two/**"); registry.addInterceptor(new OneInterceptor()).addPathPatterns("/three/**"); registry.addInterceptor(new TwoInterceptor()).addPathPatterns("/three/**"); super.addInterceptors(registry); }}
OneController.java
package com.example.demo.interceptor;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;@Controller@RequestMapping("one")public class OneController { @RequestMapping("/index") public String index(){ return "index"; } @RequestMapping("/index2") public String index2(){ return "index2"; } @RequestMapping("/index3") public String index3(){ return "index3"; }}
OneInterceptor.java
package com.example.demo.interceptor;import org.springframework.web.servlet.HandlerInterceptor;import org.springframework.web.servlet.ModelAndView;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class OneInterceptor implements HandlerInterceptor { /** * 在请求处理之前进行调用(Controller方法调用之前) */ @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object object) throws Exception { System.out.println("OneInterceptor preHandle"); return true; } @Override public void postHandle(HttpServletRequest request, HttpServletResponse response, Object object, ModelAndView mv) throws Exception { System.out.println("OneInterceptor postHandle"); } /** * 在整个请求结束之后被调用,也就是在DispatcherServlet 渲染了对应的视图之后执行 * (主要是用于进行资源清理工作) */ @Override public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object object, Exception ex) throws Exception { System.out.println("OneInterceptor afterCompletion"); }}
ThreeController.java
package com.example.demo.interceptor;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;@Controller@RequestMapping("three")public class ThreeController { @RequestMapping("/index") public String index(){ return "index"; } @RequestMapping("/index2") public String index2(){ return "index2"; } @RequestMapping("/index3") public String index3(){ return "index3"; }}
TwoController.java
package com.example.demo.interceptor;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.servlet.HandlerInterceptor;import org.springframework.web.servlet.ModelAndView;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;@Controller@RequestMapping("two")public class TwoController{ @RequestMapping("/index") public String index(){ return "index"; } @RequestMapping("/index2") public String index2(){ return "index2"; } @RequestMapping("/index3") public String index3(){ return "index3"; }}
TwoInterceptor.java
package com.example.demo.interceptor;import org.springframework.web.servlet.HandlerInterceptor;import org.springframework.web.servlet.ModelAndView;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class TwoInterceptor implements HandlerInterceptor { /** * 在请求处理之前进行调用(Controller方法调用之前) */ @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object object) throws Exception { System.out.println("TwoController preHandle"); return false; } @Override public void postHandle(HttpServletRequest request, HttpServletResponse response, Object object, ModelAndView mv) throws Exception { System.out.println("TwoController postHandle"); } /** * 在整个请求结束之后被调用,也就是在DispatcherServlet 渲染了对应的视图之后执行 * (主要是用于进行资源清理工作) */ @Override public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object object, Exception ex) throws Exception { System.out.println("TwoController afterCompletion"); }}
index相关.html
INDEX INDEX PAGE
porn.xml
4.0.0 org.springframework.boot spring-boot-starter-parent 2.1.12.RELEASE com.example demo 0.0.1-SNAPSHOT demo Demo project for Spring Boot 1.8 org.springframework.boot spring-boot-starter-web org.projectlombok lombok true org.springframework.boot spring-boot-starter-test test org.springframework.boot spring-boot-starter-thymeleaf org.springframework.boot spring-boot-maven-plugin
转载地址:https://it1995.blog.csdn.net/article/details/104158831 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
关注你微信了!
[***.104.42.241]2024年04月10日 11时29分01秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
自学练习题
2021-07-03
面向对象的三大特性,动态绑定,抽象,接口
2021-07-03
异常和数组
2021-07-03
容器和String、Date、Calendar
2021-07-03
输入和输出流
2021-07-03
java线程
2021-07-03
android开发环境的搭建
2021-07-03
android的项目结构和布局介绍
2021-07-03
xml布局
2021-07-03
ListView的用法和滚动条用法
2021-07-03
activity4种启动模式,生命周期的理解
2021-07-03
服务的用法和开启
2021-07-03
android内容提供者
2021-07-03
GridView的用法、自定义控件入门写法和界面切换动画
2021-07-03
Android手势和shape
2021-07-03
ExpandableListView二级菜单用法
2021-07-03
fragment通信的几种方式(接口框架)
2021-07-03
Android大喇叭---广播机制
2021-07-03
Android设计模式之单例模式(防止反序列化和反射构造器)
2021-07-03
其他方式登录控件
2021-07-03