Holder类有一个静态的 ThreadLocal<Xxx>,封装了 set、get、remove这 3个ThreadLocal相对应的方法
class Holder{
static ThreadLocal<Xxx>;
static setXxx
static getXxx
static removeXxx
}
下面set一个对象后,是又把它删掉了吗,但是后面还要 getXxx获取这个对象使用,
这点不是很懂,他是什么时候执行 finally的,如果立刻删了,那后面肯定获取不到了,就没有获取的意义了
这个 Filter几乎每个 .do操作都会过滤
try {
Holder.setXxx(xxx);
chain.doFilter(request, response);
} finally {
Holder.removeXxx();
}
代码离开try/catch结构,不管是正常的离开(从try代码块离开),还是抛出异常方式离开(从catch代码块离开),都会进入执行finally里面的代码。只看到set和remove,没看到get,你的代码不全吧。