gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 11:45:03 25 4
gpt4 key购买 nike

我遇到了一种情况,在处理传入的 http 请求时,计数器的值不断增加,而不是设置为 0。它的作用就像类变量而不是实例变量。我想知道第一次创建 Foo 类的实例后,这是 b/c,然后对于下一轮请求,会为其同一实例创建一个线程。将“计数器”变量作为实例变量似乎毫无意义。如果我想在下一轮传入请求的传入数据处理完成后将其重置为零,我应该将其作为 doPost 方法中的局部变量。有没有更好的方法来处理这种情况作为类变量的一部分?

public class Foo extends HttpServlet {
private int counter = 0;

protected void doPost(.....) throws Exception {
// process incoming request data
// increment counter by one
counter++;
......
}
}

最佳答案

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

关于java - 为每个传入请求重置 servlet 类的实例变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29217308/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com