本站资源限时全部免费
开启辅助访问
切换到窄版
登录
立即注册
首页
论坛
前线论坛
频道
软件
插件
Plugin
网课
搜索
搜索
每日签到
本版
文章
帖子
用户
QQ前线乐园
»
论坛
›
前线大厅
›
新闻资讯
›
Interceptor拦截//开头的请求定义拦截器使用 ...
返回列表
发新帖
Interceptor拦截//开头的请求定义拦截器使用
[复制链接]
2029
|
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
1283
主题
1284
帖子
4479
积分
论坛元老
论坛元老, 积分 4479, 距离下一级还需 9995520 积分
论坛元老, 积分 4479, 距离下一级还需 9995520 积分
积分
4479
加好友
发消息
回复楼主
返回列表
QQ教程篇
网络分享
绿色软件
虚拟商品
影视资源
VIP项目
网络资源
软件下载
有奖活动
新闻资讯
图文推荐
热门排行
1
提升抖音视频浏览量的方法与好处,自己看自己的视频能增加浏览量吗?
2
抖音视频如何拍摄才能上热门并引发共鸣?
3
黑科技涨粉 app:一键启动,免费推广,快速增加快手人气值
4
抖音拍什么视频涨粉快?掌握这些低成本玩法和增粉技巧
5
头条号重大改革后,新手如何快速有效涨粉?掌握这些技巧犹如神助
6
24 小时自助下单,卡盟轻松购买,助你快速扩大销售渠道
7
抖音涨粉秘籍:学会这些技巧,快速增加粉丝数量
8
涨粉丝软件推荐及抖音快速涨粉方法