Spring中自定义拦截器的使用
程序员文章站
2022-06-09 19:02:41
1、创建自定义拦截器类(usertokeninterceptor)并实现handlerinterceptor 接口,再重写方法,代码如下:public class usertokenintercept...
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; @configuration public 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中自定义拦截器的使用的文章就介绍到这了,更多相关spring自定义拦截器内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
下一篇: Android实现定时器的几种方法
推荐阅读
-
HTML5中div、article、section的区别及使用介绍
-
Python的Django框架中if标签的相关使用
-
Python的Django框架中的Context使用
-
详解Django中的ifequal和ifnotequal标签使用
-
Django中模版的子目录与include标签的使用方法
-
ASP.NET MVC4中使用Html.DropDownListFor的方法示例
-
在Python的Django框架中创建和使用模版
-
微信小程序 image组件binderror使用例子与js中的onerror区别
-
在风行播放器使用过程中如何切换影片中的配音
-
CentOs 7.3中搭建RabbitMQ 3.6单机多实例服务的步骤与使用