网站首页 > 知识剖析 正文
web项目实战1-登录校验注解(拦截器+注解的实例应用)
前言
在我们进行互联网项目中,经常会遇到我们这个请求必须登录后才能访问。
这是一个非常常见的问题,这个请求可能是一个页面也可能是一个Ajax,
这就需要我们对请求进行额外的处理。
要实现这种需求的方法有很多种,在这里是用拦截器+注解的方式处理,灵活性好。
思路:
1. 需要一个注解 (如:LoginAccessRequired.java)
2. 定义一个拦截器,对我们的注解进行分析
3. 在需要登录校验的时候,添加我们注解即可
实现:
1. 定义我们的注解类 : LoginAccessRequired.java
这里我们定义了一个LoginAccessRequired注解类,注解对象是方法级的,并且作用域是Runtime运行时,定义个一responseType属性,表示响应的类型(自定义的枚举类),默认是JSON-即请求为Ajax,返回类型是json结构。好了,自定义注解完成
2. 定义一个拦截器,对我们的注解进行分析 :
LoginAccessRequiredInteceptor.java
我们知道注解是一种"被动"信息, 需要”主动“去解析它才有意思。所以我们的注解解析工具使用HandlerInterceptorAdapter的子类,拦截方法处理请求。
org.springframework.web.servlet.handler.HandlerInterceptorAdapter是spring的一个类,我们重写的preHandle()即可。
LoginAccessRequiredInteceptor.java
preHandle()方法:
以来的一些小方法:
解析注解,获取响应类型:
获取前登录用户ID
对应请求的两种响应:
至此,我们的注解与注解的解析工具已经完成,还可以吧,是不是感觉注解也没什么...
3.吼吼,关键的一步来喽,我们的注解要怎么用呢,看图:
这是PersonalController.java个人设置下的一个方法
最后,在springmvc-servlet.xml文件中加入我们的拦截器即可
到此我们的所有 代码已经完成了。我们只是负责抛“砖”的,具体能引出什么样的“玉”,需要开动自己的大脑大胆的去尝试,只有自己学到了,才是自己的。
重要的事情说三遍:多写,多写,多写,我相信代码是写出来的。
让我们在编程之路上一起加油吧~~~
猜你喜欢
- 2025-07-19 Spring Boot集成OAuth2:实现安全认证与授权的详细指南
- 2025-07-19 【实用篇】收到全电发票,怎么查验真伪?
- 2025-07-19 微软Office Open XML中的数字签名漏洞
- 2025-07-19 开具红字增值税专用发票信息表出错,怎么办?
- 2025-07-19 SpringBoot数据校验与优雅处理详解
- 2025-07-19 深入理解 JSR 303:数据校验在 Spring Boot 中的应用
- 2025-07-19 你在 Spring Boot3 开发中,还在为前端接口参数校验头疼?
- 2025-07-19 Spring Boot | 一种优雅的参数校验方案(个人总结)
- 2025-07-19 Spring Boot3 整合 JWT 实现 RESTFul 接口认证
- 2025-07-19 oracle——xmlagg拼接大字段问题(oracle/xdb/xmltype)
- 最近发表
-
- 不用Flexbox, 一行代码搞定CSS居中难题
- 使用 HTML、CSS 和 JS 创建令人惊叹的粒子背景效果
- CSS样式隔离:12个技巧让冲突率降低75%
- Python开发爬虫的常用技术架构_python网络爬虫开发
- DISMTools v0.5.1 Update 1_DISMTools v0.5.1 Update 16
- Spring MVC 完整配置指南:WebMvcConfigurer 实战全解析
- Python3 XML解析:探索数据交换与处理的高效工具(38)
- 《Java核心技术·卷 Ⅱ》知识点总结
- MyBatis3源码解析-执行SQL流程_mybatis3源码深度解析
- 印度计算机应急响应小组警告:谷歌Chrome、Zoho软件存在多个漏洞
- 标签列表
-
- xml (46)
- css animation (57)
- array_slice (60)
- htmlspecialchars (54)
- position: absolute (54)
- datediff函数 (47)
- array_pop (49)
- jsmap (52)
- toggleclass (43)
- console.time (63)
- .sql (41)
- ahref (40)
- js json.parse (59)
- html复选框 (60)
- css 透明 (44)
- css 颜色 (47)
- php replace (41)
- css nth-child (48)
- min-height (40)
- xml schema (44)
- css 最后一个元素 (46)
- location.origin (44)
- table border (49)
- html tr (40)
- video controls (49)