我应该在servlet操作中使用的最佳变量作用域是什么



我正在开发工作流管理系统。

有一个单独的java类,其中包含逻辑方法。其中之一是:

public static in get_nxt_stg(int current_stg,int action)
{
}

并定义静态变量CCD_ 1和CCD_。在servlet中使用。调用此方法。

当多个用户登录并执行某些操作时,这些变量的值不正确。它似乎是在所有用户请求之间共享的。

在servlet中使用变量的最佳方式是什么,它仍然是特定于那个请求的?

您不应该以这种方式使用static。如果您需要共享状态,请考虑使用singleton模式;但尽量避免静电。不明智地使用"静态"可能会变成一场噩梦(例如关于单元测试)。

此外:您似乎是Java语言的初学者。但是创建servlet绝对是一个"高级"java主题。我真的建议您开始学习更多关于Java的知识,为使用servlet做准备。否则,服务器的用户可能会有很多不愉快的经历。。。

您所做的是错误的。您应该仅将Servlet用于读取请求参数和发送响应。您试图做的事情应该在应用程序的业务层中实现,如果您用EJB实现了它,那么您的问题可以用Stateful EJB轻松解决。