本站资源限时全部免费
开启辅助访问
切换到窄版
登录
立即注册
首页
论坛
前线论坛
频道
软件
插件
Plugin
网课
搜索
搜索
每日签到
本版
文章
帖子
用户
QQ前线乐园
»
论坛
›
前线大厅
›
新闻资讯
›
Interceptor拦截//开头的请求定义拦截器使用 ...
返回列表
发新帖
Interceptor拦截//开头的请求定义拦截器使用
[复制链接]
2020
|
0
|
2023-1-1 05:01:48
|
显示全部楼层
|
阅读模式
拦截器Interceptor,是SpringMVC中的核心内容,利用spring的AOP(Aspect Oriented Programming, 面向切面编程)特性,可以很方便的对用户的业务代码进行横向抽取,根据具体业务需求对应用功能进行增强。
在SpringBoot中使用Interceptor,同时采用全注解开发,涉及到以下接口和类:
HandlerInterceptor:处理器拦截器,handler就是处理器,在springboot web开发中,由控制器来处理web请求,因此handler具体指控制器使用全注解开发,通过@Configuration注解,让一个java对象主任到IOC容器,并作为配置对象,这里的JavaConfig类相当于一个xml配置文件;在以前的xml配置中
(1)通过引入一些标签进行配置,在JavaConfig中,通过继承一个类或者实现一个接口来实现配置,这里所继承的类、所实现的接口就相当于引入的标签;
(3)通过设置所引入标签的属性和值,可以实现个性化配置,在JavaConfig中通过覆盖类或者接口的方法来实现个性化配置。
下面通过一个案例来实现自定义拦截器
拦截/user/开头的请求,不拦截/usr/login请求
1. 定义拦截器
<p><pre> <code>1234567891011121314package cn.eis220.web;
import org.springframework.web.servlet.HandlerInterceptor;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class LoginInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
System.out.println("执行了logininterceptor的preHandle方法");
return true;
}
}
</code></pre></p>
2. 使用JavaConfig注册拦截器
java配置类相当于xml配置文件
xml中通过引入interceptor标签来进行配置,java配置类通过实现WebMvcController进行配置;
xml中通过修改标签的属性和值来个性化配置,java配置类通过实现WebMvcController的方法进行个性化配置
<p><pre> <code>123456789101112131415161718package cn.eis220.config;
import cn.eis220.web.LoginInterceptor;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
@Configuration
public class MyAppCofnig implements WebMvcConfigurer {
@Override
public void addInterceptors(InterceptorRegistry registry) {
LoginInterceptor loginInterceptor = new LoginInterceptor();
String[] path = {"/user/**"};
String[] excludePath = {"/user/login"};
registry.addInterceptor(loginInterceptor).addPathPatterns(path).excludePathPatterns(excludePath);
}
}
</code></pre></p>
3. 定义控制器,测试拦截器
<p><pre> <code>123456789101112131415161718192021package cn.eis220.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller
public class BootController {
@RequestMapping("/user/account")
@ResponseBody
public String userAccount(){
return "/user/account";
}
@RequestMapping("/user/login")
@ResponseBody
public String userLogin(){
return "/user/login";
}
}
</code></pre></p>
4. 总结
步骤:
如何定义自己的拦截器:
实现HandlerInterceptor接口的方法,来自定义拦截器如何注册拦截器:
JavaConfig配置类实现WebMvcConfigurer接口的addInterceptor方法来注册拦截器
内容拦截器有什么用
,
360拦截有用吗
,
绑钩器和打结器怎样用
相关帖子
•
360浏览器网址被拦截的方法讲解,全部内容的朋友可以了解
•
-广告拦截目录(7页珍藏版)【图文】
•
火狐浏览器拦截警告功能取消操作一览以上小编
•
Roadblock配置文件阻止程序配置文件Safari拦截器扩展程序(组图)
•
软件特色可以有效去除烦人的广告,阻止危险网站的
•
高级版和标准版有哪些不同?十周年广告深度净化
•
又称被诱惑去寻找色情保护你的孩子这个程序肯定是不完美
回复
使用道具
举报
返回列表
发新帖
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
本版积分规则
发表回复
回帖后跳转到最后一页
enrl305
1269
主题
1270
帖子
4431
积分
论坛元老
论坛元老, 积分 4431, 距离下一级还需 9995568 积分
论坛元老, 积分 4431, 距离下一级还需 9995568 积分
积分
4431
加好友
发消息
回复楼主
返回列表
QQ教程篇
网络分享
绿色软件
虚拟商品
影视资源
VIP项目
网络资源
软件下载
有奖活动
新闻资讯
图文推荐
热门排行
1
电商 3.0 时代:以粉丝为核心,打造忠诚社群体系的核心使命
2
云商城 24 小时自助下单平台:方便快捷的在线购物体验
3
安卓模拟器抓包工具 Fiddler 配置教程及注意事项
4
抖音涨粉太难?揭秘个人用户如何突破困境快速涨粉
5
抖音粉丝增长策略与技巧:制作高质量内容吸引更多关注
6
抖音运营技巧:解析粉丝增长趋势与原因,加速账号发展
7
抖音变化悄然发生,生活类视频增多,热门技巧分享
8
小红书运营技巧分享:如何养号并完善个人账号以实现引流变现