java - HttpSession 通过引用或值存储属性?

标签 java servlets httpsession

我在服务器应用程序中使用 HttpSession。并为 session 设置属性。我接下来的问题是: session 的属性如何设置——通过引用或值。

担心不会java堆空间异常和RAM节省的问题。

例如:如果我将创建无状态 array1 并将其设置为不同 session 的属性。在这种情况下,所有 session 都将使用 array1 作为“单例”实例,也可能不是

谢谢!

最佳答案

在 Java 中,所有对象(包括数组)都是通过引用 传递的。因此,如果将同一个数组实例存储到多个 HttpSession 中,它们将共享。数组的大小无法修改,但它的元素可以修改 - 无论它们是基元还是引用,因此在 Servlet 等高并发环境中必须小心。

您可能需要注意的另一个方面是 HttpSession 的所有属性 应该 是可序列化的。

关于java - HttpSession 通过引用或值存储属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6585315/

相关文章:

java - @Autowired HttpSession 不保存简单的字符串 - SpringBoot

java - 并发使用 java.util.Random 的争用

java - 当客户端断电或在netty中失去互联网连接时,如何检测客户端在服务器上的断开连接

java - session 已销毁;在 JSP 和 Servlet 中打印消息

java.awt.print.PrinterException : Printer is not accepting job

java - 未经身份验证的应用程序的 Http session

java - Java中的静态方法是继承的吗?

java - 保存 RPC 请求内容的最佳实践

java - 是否为 JSP/Tomcat 中的每个客户端创建了一个 servlet?

java - 从 HttpSessionListener 获取 SessionScoped bean?