考虑一个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可能丢失来自请求的值。
1条答案
按热度按时间uurv41yg1#
我认为你需要使value成为一个局部变量,这样它就不会被其他请求更新了。一旦它被设置为唯一请求中的属性,其他并发请求就无法更新它。