主题 : 帅气的版主大大!求进来解救!
级别: 童生
UID: 49980
积分:23 加为好友
威望: 1 精华: 0
主题:1 回复:14
注册时间:2013-07-17
在线时长:0
1#   发表于:2014-08-01 22:30:11  IP:106.61.*.*
在学习源码的时候,我发现用interceptor拦截完请求,都会把CmsUser和CmsSite对象跟当前请求使用的线程绑定,然后请求结束之后就释放解除了这个绑定,请问设计这个的思想是什么?是为了解决什么问题呢?
我看网上有一个博客提到登录之后有的时候会显示别人的信息,就是因为没有绑定引起,这个我就不理解了,一个请求分配一个线程,用完了就放回线程池;每个线程都有自己的独立内存空间吧?为什么会在并发请求的时候读到别的内存空间的信息
级别: 状元
UID: 33380
积分:50625 加为好友
威望: 21 精华: 3
主题:88 回复:30687
注册时间:2012-05-07
在线时长:0
2#   发表于:2014-08-04 09:15:03  IP:61.128.*.*
SpringMVC 中的Interceptor 拦截请求是通过HandlerInterceptor 来实现的。在SpringMVC 中定义一个Interceptor 非常简单,主要有两种方式,第一种方式是要定义的Interceptor类要实现了Spring 的HandlerInterceptor 接口,或者是这个类继承实现了HandlerInterceptor 接口的类,比如Spring 已经提供的实现了HandlerInterceptor 接口的抽象类HandlerInterceptorAdapter ;第二种方式是实现Spring的WebRequestInterceptor接口,或者是继承实现了WebRequestInterceptor的类。然后请求结束之后就释放解除了这个绑定,它的主要作用是拦截用户的请求并进行相应的处理。比如通过它来进行权限验证,或者是来判断用户是否登陆
功成由勤,业精于勤。
1 共1页