Spring中自定义拦截器的使用
程序员文章站
2022-01-23 10:22:04
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自定义拦截器内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
上一篇: MVVMLight项目之双向数据绑定
推荐阅读
-
Javascript中的getUTCDay()方法使用详解
-
在JS中操作时间之getUTCMilliseconds()方法的使用
-
简介JavaScript中的setDate()方法的使用
-
在JavaScript中操作时间之getUTCDate()方法的使用
-
JavaScript中的getTime()方法使用详解
-
JavaScript中setMonth()方法的使用详解
-
JavaScript中的getTimezoneOffset()方法使用详解
-
Javascript中的getUTCHours()方法使用详解
-
JavaScript中getUTCMinutes()方法的使用详解
-
在JavaScript中处理时间之setMinutes()方法的使用