gpt4 book ai didi

java - 如何在 servlet 中存储静态数据并在所有 session /请求之间共享它?

转载 作者:行者123 更新时间:2023-12-01 07:32:05 25 4
gpt4 key购买 nike

我有一个 servlet,我想向 Web UI 提供数据。数据存储在一个 xml 文件中,我预计该文件会在几天内修改一次。我想在 servlet 中加载 xml 文件一次,并为每个请求提供服务,并且仅当我发送另一个“重新加载”请求时才重新加载它。

据我所知,servlet 中的静态变量是不好的做法。

我怎样才能实现我所需要的?

谢谢。

最佳答案

我真的开始不喜欢“不好的做法”这个词,因为它暗示我们可以在任何情况下评估某件事是否不好。这种情况很少发生 - 或者换句话说,如果 Java 语言的设计者认为静态字段总是不好的,他们就不会将它们包含在该语言中。

在 servlet 中拥有可变状态是完全可以的 - 但您必须记住,servlet 容器将使用 servlet 的相同对象实例来(同时)服务所有请求。

这意味着特定于请求的状态不应存储在 servlet 中,因为不同的请求处理线程会覆盖彼此的状态。但就您的情况而言,您希望在所有请求之间共享状态,因此 servlet 中的字段是合适的。然而,由于 servlet 是由并发线程访问的,因此您必须同步对该可变共享状态的访问。

关于java - 如何在 servlet 中存储静态数据并在所有 session /请求之间共享它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16506476/

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