gpt4 book ai didi

java - Servlet 中的静态变量

转载 作者:行者123 更新时间:2023-11-28 23:58:46 24 4
gpt4 key购买 nike

我在 servlet 中有一个 jar。这个 jar 有一个名为“projectDirecotry”的变量。从逻辑上讲,我希望“projectDirectory”为每个用户保存不同的值。由于变量是静态的,我在这里面临竞争条件。我知道使用静态变量是一个糟糕的设计,但我无法控制这个 jar 的源代码。我发现静态变量的范围仅限于类加载器。我只是想知道是否可以为每个用户为这个 jar 创建一个不同的类加载器,以便用户不再共享静态变量。

最佳答案

Any servlet 中的成员变量是不鼓励的,因为通常只有一个 servlet 对象。 所有 状态需要进入请求/响应对象,而不是在 servlet 中。

听起来您必须运行有缺陷的代码,不能/不允许修复它,但仍然应该让它工作。让它工作的方法是修复原始代码,而不是破坏类加载机制或其他任何东西。

快跑!

如果您不这样做,并以某种方式神奇地修复了这个 问题:这个类有一个基本的错误,就会有更多。最终,将成为 future 任何故障的罪魁祸首,因为您构建了绝对非标准的基础架构。

假设下一个问题是性能问题。或者另一个成员变量,XSS,CSRF。如果您现在正在努力处理 servlet 中的静态变量,则可能性很高。

在根部修复它,或者逃跑。抵制任何二等变通办法,不惜任何代价。

关于java - Servlet 中的静态变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48212359/

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