Java拦截器实现拦截controller方法
1,定义拦截器
import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Component; import org.springframework.web.method.HandlerMethod; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse;@Component public class AuthorityInterceptor extends HandlerInterceptorAdapter {private static final Logger logger = LoggerFactory.getLogger(AuthorityInterceptor.class);@Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {logger.info("进入到拦截器中:preHandle() 方法");HandlerMethod handlerMethod=(HandlerMethod)handler;AccessIntercept loginVerify=handlerMethod.getMethodAnnotation(AccessIntercept.class);if (loginVerify!=null){System.out.println(loginVerify.IsIntercept());logger.info("不需要对 @loginVerify注解方法 进行拦截");return false;}else {logger.info("对非@loginVerify注解方法 进行拦截处理");System.out.println(request.getServletPath());System.out.println(request.getParameter("id"));return true;}}@Overridepublic void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {logger.info("进入到拦截器中:postHandle() 方法中");System.out.println(request.getRequestURI());}@Overridepublic void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {logger.info("进入到拦截器中:afterCompletion() 方法中");System.out.println(request.getServletPath());} }
2,配置拦截器
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.InterceptorRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;@Configuration public class InterceptorAdapterConfig extends WebMvcConfigurerAdapter {@Autowired // private RequestLimitIntercept authorityInterceptor;private AuthorityInterceptor authorityInterceptor;@Overridepublic void addInterceptors(InterceptorRegistry registry){//注册自己的拦截器并设置拦截的请求路径registry.addInterceptor(authorityInterceptor).addPathPatterns("/**");super.addInterceptors(registry);} }
3,自定义注解
@Target(ElementType.METHOD) @Retention(RetentionPolicy.RUNTIME) public @interface AccessIntercept {boolean IsIntercept() default true; }
4,使用自定义注解
在controller中的方法上面使用@AccessIntercept注解。
Java拦截器实现拦截controller方法相关推荐
- html页面设置拦截器,SpringBoot拦截器Filter的使用方法详解
SpringBoot拦截器Filter的使用方法详解 发布时间:2020-08-27 22:44:03 来源:脚本之家 阅读:107 作者:玉天恒 前言: 最新Servlet 3.0拦截器的使用 1. ...
- SpringBoot2整合Mybatis拦截器,拦截mapper接口的某个方法
需求: 在执行某个动态sql时,where 子句,希望通过用户进行自定义查询条件,比如用户可以传入 "id > 100011 and name = '张三'" 的多条件表达式 ...
- java 登录拦截器_springMVC 拦截器-用户登录拦截实战
各位小伙伴 咱们继续学习新知识 今天要分享的就是 拦截器 不知道小伙伴们平时上网的时候有没有注意到,尤其是上网购物的时候,不登录账号,就无法访问一些功能页面,比如你不登录账号,就没法查看购物车里面有什 ...
- spring拦截器使用及拦截器中获取Controller实例
1,首先是配置,在spring-mvc的配置文件中加上 <!-- 拦截器 --> <mvc:interceptors><bean class="cn.hydom ...
- Spring boot自定义拦截器和拦截器重定向配置简单介绍~!
大家好: 本文简单介绍一下用于权限控制的Spring boot拦截器配置,拦截器重定向问题. 开发工具:jdk1.8 idea2017(付费版,网上找的破解教程) 1,首先使用idea创建一个Sp ...
- Struts2 拦截器: 拦截器与过滤器区别
1.首先要明确什么是拦截器.什么是过滤器 1.1 什么是拦截器: 拦截器,在AOP(Aspect-Oriented Programming)中用于在某个方法或字段被访问之前,进行拦截然后在之前或之后加 ...
- springmvc拦截器无法拦截jsp
为什么80%的码农都做不了架构师?>>> 问题:spring mvc的拦截器只拦截controller不拦截jsp文件,如果不拦截jsp文件也会给系统带安全性问题. 解决方案: ...
- axios 请求拦截器响应拦截器
一. 拦截器介绍 一般在使用axios时,会用到拦截器的功能,一般分为两种:请求拦截器.响应拦截器. 请求拦截器 在请求发送前进行必要操作处理,例如添加统一cookie.请求体加验证.设置请求头等,相 ...
- axios拦截器 config_axios拦截器的实现
拦截器设计与实现 #需求分析 我们希望能对请求的发送和响应做拦截,也就是在发送请求之前和接收到响应之后做一些额外逻辑. 我们希望设计的拦截器的使用方式如下: // 添加一个请求拦截器 axios.in ...
- axios 最全 请求拦截器 响应拦截器 配置公共请求头 超时时间 以及get delete post put 四种请求传参方式
axios 拦截器 请求拦截器 请求拦截器的作用是在请求发送前进行一些操作 例如在每个请求体里加上token,统一做了处理如果以后要改也非常容易 响应拦截器 响应拦截器的作用是在接收到响应后进行一些操 ...
最新文章
- Redis 集群方案
- 【Android】附加Android源代码Androidandroid_gingerbread_javasrc
- hadoop(5)——mrjob的使用(1)——直接在本地测试
- md5加密解密代码_Python内置方法实现基于秘钥的信息加解密
- 文章用图的修改和排版
- flutter 刷脸_GitHub - hqwlkj/wechat_face_payment: 微信刷脸支付、刷脸认证、扫码支持等 Flutter 插件....
- 光纤光信号闪红灯_电信光纤光猫光信号闪红灯怎么处理
- 常见的使用ICMP协议的命令
- 巧用DBGrid控件的Sort属性实现“点击标题栏自动排序功能”。(改进版本)
- 【转】Java多线程面试问题集锦
- 问题处理:VMware Workstation和Device / Credential Guard不兼容
- SEGGER System View - J-Link Library not found
- 情迁机器人手机版1.6.9升级说明包含多个重要更新
- 中国传统文化课程笔记
- 浅析企业上下级沟通的障碍及对策
- ArcGIS模型构建器案例学习-批量删除空要素类地理模型
- 山东工商学院计算机2军训,山东工商学院举行2018级新生开学典礼暨军训动员大会...
- 图像滤镜艺术---水彩画滤镜
- Photoshop(4)做海报的心得
- 51单片机8255扩展c语言,51单片机8255A扩展IO口
热门文章
- Nuxt3 服务端渲染 、elementplus多皮肤黑暗模式
- 简单游戏代码_简单游戏
- python将文本(txt)转excel(xls)
- 最全的微信小程序代码大全
- Java前端和后端的区别
- php随机生成微信昵称(一),可配合头像一起生成虚拟头像
- 小米手机用什么蓝牙耳机好?高颜值游戏专属蓝牙耳机推荐
- 通俗易懂web3.0
- LINUX-VIM编辑器常用命令大全(超全)
- 直播源 列表 转换 php,Telelist直播源制作与格式转换工具 V2.4.1下载 制作XSPF、DPL、M3U等播放列表格式...