为每个传入请求重置servlet类的实例变量

时间:2015-03-23 18:06:00

标签: java variables servlets instance

我遇到了一个情况,计数器的值在处理传入的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++;
        ......
    }
 }

1 个答案:

答案 0 :(得分:1)

我不明白你究竟要实现什么,但一般来说你应该避免在servlet对象中保留任何状态。使用request.getAttribute(),request.setAttribute(),request.getSession()。getAttribute()或request.getSession()。setAttribute()。或者,您可以在例如jsf或spring中使用请求范围或会话范围的bean。