我遇到了一个情况,计数器的值在处理传入的http请求时不断增加而不是设置为0.它就像类变量而不是实例变量。我想知道一旦第一次创建Foo类的实例就是b / c,然后在下一轮请求中为它的同一个实例创建一个线程。让#34;反击"似乎没有意义。变量作为实例变量。我应该将它作为doPost方法中的局部变量,如果我想在下一轮传入请求完成传入数据的过程后将其重置为零。有没有更好的方法来处理这种情况作为类变量的一部分?
public class Foo extends HttpServlet {
private int counter = 0;
protected void doPost(.....) throws Exception {
// process incoming request data
// increment counter by one
counter++;
......
}
}
答案 0 :(得分:1)
我不明白你究竟要实现什么,但一般来说你应该避免在servlet对象中保留任何状态。使用request.getAttribute(),request.setAttribute(),request.getSession()。getAttribute()或request.getSession()。setAttribute()。或者,您可以在例如jsf或spring中使用请求范围或会话范围的bean。