java中实现.net中HttpContext.Current的思路
由于使用.net的时间也比较长,在.net中有一个全局的上下文环境,HttpContext.Current。一些线程内使用的内容都可以基于HttpContext.Current保存和获取,并且每个线程中都保存自己的数据,彼此不冲突。
但java中本身不存在这么一下全局的上下文对象。所以就想在java中实现这么一个上下文。
主要是想通过java中的ThreadLocal来实现。ThreadLocal是threadlocalvariable(线程局部变量)。。线程局部变量(ThreadLocal)其实的功用非常简单,就是为每一个使用该变量的线程都提供一个变量值的副本,是Java中一种较为特殊的线程绑定机制,是每一个线程都可以独立地改变自己的副本,而不会和其它线程的副本冲突。因以可以写一个filter,拦截所有的action请求,但filter中创建一个新的ThreadLocal对象,然后把相关的request,response等相关的线程内需要共享的信息通过ThreadLocal.set方法进行保存,在使用的时候通过ThreadLocal.get方法进行获取。就相当于模拟实现了.net的HttpContext.Current.