作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已将一个数组列表从 servlet
附加到 session 中,附加后,我在 servlet
中清除该 arraylist
,因此它得到也从 session 中清除。
请问可以说明理由吗?
最佳答案
尽管你的问题不太适合 Stack Overflow,但我想我明白你的意思。
所以你有一个
List<MyClass> myList = new ArrayList<MyClass>();
在你的代码中的某个地方,你
.clear()
。对吗?
问题是,与您的想法相反,您只有一个 ArrayList
实例。 “在” session 中和“在您的 servlet 中”是相同的。只是你有一个不同的引用指向它......
您需要做的是将列表实例的不同实例附加到您的 session :
//this creates a new list instance, with references to the same objects
List<MyClass> myNewList = new ArrayList<MyClass>(myList);
并将此myNewList
“附加”到 session 。这样,生成的两个列表可以进行不同的处理,它们可以具有不同的内容。如果您更改其中一个,另一个将保持不变。
但是,我建议重新考虑您的结构,共享信息始终是一个需要仔细处理的问题,Java Concurrency In Practice是处理此类问题时值得阅读的重要书籍。
关于java - session 中的 ArraryList 附件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15067006/
我已将一个数组列表从 servlet 附加到 session 中,附加后,我在 servlet 中清除该 arraylist,因此它得到也从 session 中清除。 请问可以说明理由吗? 最佳答案
我是一名优秀的程序员,十分优秀!