千家信息网

Spring中自定义拦截器怎么用

发表于:2024-12-03 作者:千家信息网编辑
千家信息网最后更新 2024年12月03日,小编给大家分享一下Spring中自定义拦截器怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1、创建自定义拦截器类(U
千家信息网最后更新 2024年12月03日Spring中自定义拦截器怎么用

小编给大家分享一下Spring中自定义拦截器怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

1、创建自定义拦截器类(UserTokenInterceptor)并实现HandlerInterceptor 接口,再重写方法,代码如下:

public class UserTokenInterceptor implements HandlerInterceptor {     /**     * @description 访问Controller之前执行     */    @Override    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {        log.info("进入拦截器啦、、");        return true; // true即可放行,false则不放行    }     /**     * @description 请求访问Controller之后,渲染视图之前     */    @Override    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {     }     /**     * @description 请求访问Controller之后,渲染视图之后     */    @Override    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {     }}

2、配置Web拦截器(WebMvcConfig)并实现Spring的WebMvcConfigurer接口

在Spring Boot 1.5版本都是靠重写WebMvcConfigurerAdapter的方法来添加自定义拦截器,消息转换器等。SpringBoot 2.0 后,该类被标记为@Deprecated(弃用)。官方推荐直接实现WebMvcConfigurer或者直接继承WebMvcConfigurationSupport,方式一实现WebMvcConfigurer接口(推荐)

复写addInterceptors方法,添加自己的拦截器

import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; @Configurationpublic class WebMvcConfig implements WebMvcConfigurer {     @Override    public void addInterceptors(InterceptorRegistry registry) {        // 注册拦截器        registry.addInterceptor(getUserTokenInterceptor()).addPathPatterns("/index/session");        // 一定要加        WebMvcConfigurer.super.addInterceptors(registry);    }      //    @Bean    public UserTokenInterceptor getUserTokenInterceptor() {        return new UserTokenInterceptor();    } }

3、编写测试Controller

@RestController@RequestMapping("/index")public class IndexController {     @Deprecated    @GetMapping("/session")    public Object getSession(HttpServletRequest request) {        HttpSession session = request.getSession();        session.setAttribute("name", "lequal");        session.setMaxInactiveInterval(3600);        String name = (String) session.getAttribute("name");        System.out.println("获取的名字是:" + name);        return name;    }}

4、访问URL地址

如果preHandle方法中return false的话浏览器访问是看不到返回的内容的,因为被拦截住了,就相当于卡在那里了。

以上是"Spring中自定义拦截器怎么用"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

拦截器 方法 内容 接口 篇文章 视图 推荐 不怎么 代码 名字 地址 大部分 官方 方式 更多 标记 浏览器 消息 版本 知识 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 静安区参考网络技术服务售后服务 服务器主板内存要几条 网络安全类公司财务报表 万全r525服务器读不到硬盘 电脑按什么进去服务器管理 中国网络技术对世界的影响 .net 代码创建数据库 没有强大的网络安全生产 高端服务器浪潮 数据库土地ACCESS 福建数据库防护箱生产厂家 ncdb数据库 人口数据库是什么样子的 惠州手机软件开发费用是多少 共享单车必须要在服务器内进行吗 嵌入式软件开发要考的证 python对接数据库运算 安徽企业党建软件开发专业制作 上海手机app软件开发流程 数据库的答案在哪能搜到 网络强国保障网络安全 创建数据库表与约束 面试问题对网络安全的想法 移动端ui软件开发 语义分析网络安全攻击 惠州手机软件开发费用是多少 给数据库每一条数据添加一个数据 黑客技术服务器内存全套教程 灵丘智能化网络安全常见问题 局域网服务器为什么不能上网
0