【问题标题】:Global variable and call by reference in Java ServletJava Servlet 中的全局变量和引用调用
【发布时间】:2014-07-31 12:22:30
【问题描述】:

我有一个包含许多全局变量和许多函数的 Servlet。每个函数都需要读写这个变量。问题是,这不是threadsafe。当我在一个函数(doGet\Post)中有变量时,另一个无法访问它们。

有没有办法用引用而不是值来调用函数? 您通常如何“模拟”全局变量?

【问题讨论】:

  • 为什么需要这些全局变量?尽量避免这种情况。
  • 因为我有很多函数可以访问相同的变量并且需要前一个函数的结果。函数将始终以不同的顺序调用。
  • 让这就是问题所在:在这种情况下如何避免全局变量?
  • 如果这是在同一个 servlet 中,为什么不将这些变量设置为类属性?
  • 数据用户是否特定?

标签: java jsp variables servlets global-variables


【解决方案1】:

在 java 中,调用总是通过引用,而不是通过值(除非你用 RMI 序列化......不太可能)。 您可以使用线程局部变量来解决这个问题之王:每个线程变量都有一个“全局”。 http://docs.oracle.com/javase/7/docs/api/java/lang/ThreadLocal.html

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-03-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-16
  • 1970-01-01
相关资源
最近更新 更多