有没有办法将值从servlet传递给调用业务方法而不将其作为参数发送

时间:2017-12-01 03:49:39

标签: java servlets

我有一个Servlet,它调用一些业务方法,并且需要为每个请求生成一个唯一的事务id,我们需要将这个事务id传递给业务方法。

一种解决方案是将此事务ID作为参数传递给所有业务方法。但这不是一个好的解决方案,因为代码是多余的和不必要的。

2 个答案:

答案 0 :(得分:0)

您可以将其添加为servlet中的线程局部变量,并在其他任何位置访问它。每个传入的请求都会产生一个新的线程,并且线程局部变量将仅仅是该线程的本地变量

答案 1 :(得分:0)

我已经通过使用ThreadLocal解决了这个问题。

线程本地可以被视为访问范围,如请求范围或会话范围。这是一个线程范围。您可以在Thread Local中设置任何对象,该对象将是访问此对象的特定线程的全局和本地对象。我已提及this article 来解决此问题。