Java servlet 范围

标签 java servlets

我有一个 Web 应用程序,其中包含 Servlet 和通过 getInstance 访问的静态类:

MyServlet extends HttpServet {
 protected void doGet(...) {
  MyClass.getInstance().doStuff();
 }
}

当客户端连接到 servlet 时,它们是否获得自己的 MyClass 实例,或者此类的实例对于所有 servlet 都是全局的?我的意思是,假设它有一个在 doGet 方法期间设置的静态变量,当其他客户端访问 Web 应用程序时,他们会获取其他客户端在该静态类中设置的变量值吗?

编辑:

具体来说,MyClass 表示访问 Web 服务的类,这是经过身份验证的。

最佳答案

Web 应用程序中的所有代码都可以访问 MyClass 的同一静态变量。

但是,它仍然必须遵守 Java 线程模型规则。

因此,在没有同步的情况下,在 doGet 中更改它并不意味着其他线程会自动看到新值。

关于Java servlet 范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9024579/

相关文章:

java - InputStream 问题 - Android

java - 比较Java中的两个字符串

java - JDBC中如何获取插入ID?

java - Java EE 与 Servlet 的优缺点

java - 如何在 Eclipse 中开启 Tomcat 的自动重启?

tomcat - 我如何在 servlet 中使用 catalina.home?

java - graphql java : global dataFetcher and dynamic object

java - JUnit如何处理DateTimeParseException

java - Hibernate Envers仅使用servlet保存用户名

java - 在不同的计算机上出现此错误 : The origin server did not find a current representation for the