在 Filter里面使用 ThreadLocal<Xxx>,这段代码是什么意思,有点看不懂。

新手上路,请多包涵

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();

}

阅读 2.1k
1 个回答

代码离开try/catch结构,不管是正常的离开(从try代码块离开),还是抛出异常方式离开(从catch代码块离开),都会进入执行finally里面的代码。只看到set和remove,没看到get,你的代码不全吧。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题