tomcat 维护Servlet请求属性状态

cl25kdpy  于 2023-10-19  发布在  其他
关注(0)|答案(1)|浏览(111)

考虑一个JSP页面,它具有以下值。

String value = null;
if (request.getParamter("VALUE") != null) {
    value = request.getParamter("VALUE");
}
/// other logics
if (true) {
    request.setAttribute("VALUE", value);
    SomeClass.method(request);
}

现在,只有当一个特定的请求将有值的请求,它将被分配如果其他请求没有该值将使它空之前,调用SomeClass是方法,那么我不会有值的SomeClass方法。如何克服这一点而不使用会话和cookie,因为我可能会得到并发值,如果会话或cookie使用它会导致问题。使用静态可能会导致不同线程情况下的问题。有没有Tomcat的解决方案。请注意,在第一个块本身内设置request属性,因为其他逻辑可能包括调用过滤器和其他流,其中i可能丢失来自请求的值。

uurv41yg

uurv41yg1#

我认为你需要使value成为一个局部变量,这样它就不会被其他请求更新了。一旦它被设置为唯一请求中的属性,其他并发请求就无法更新它。

if(request.getParamter("VALUE") != null)
{
  String value = request.getParamter("VALUE");
  request.setAttribute("VALUE",value) 
} 
/// other logics
if(true)
{
SomeClass.method(request);
}

相关问题