Java 中的服务器会话管理
如何处理服务器会话中的静态变量?
我有 30 个不同的函数,在服务器上没有真正的关系,但它们目前通过一些静态变量共享数据(我知道这很糟糕,但我只是在测试它)。现在,如果我有不同的客户端连接到服务器,它们会互相干扰,没有客户端可以获得正确的数据。
所以我想知道有什么好方法可以处理这些不同的会话数据,而无需在创建类时将对其他对象的二十个引用传递给类。
另一个问题是,这些类实例化线程,因此我不能确定当我将响应发送回服务器时操作是否已完成。 (因此根据客户端切换当前静态变量不是一个选项)
How can I handle static varibles inside my server session?
I have 30 different functions with no real realtion on the server, but they currently share data over some static varibles (I know this is bad, but I was just testing it). Now if I have different clients connecting to the server, they would interfear with each other an no client would get the right data.
So I wondered what a good way to handle this diferent Session datas without passing twenty refernce to the other objects to a class when creating a class.
Another problem is, that the classes instanciate threads, so I can't be shure, that the actions are completed when I send the responses back to the server. (So switchin the current static varibles depending on the client is not an option)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
如果您不想将所有这些内容放入会话中(
session.setAttribute(..)
和.getAttribute()
),那么也许您可以使用以下映射:地图:并从该地图设置/获取。其中:
session.getId()
获取)因此您将能够拥有会话特有的值,而无需依赖 servlet API。
If you don't want to put all these things in the session (
session.setAttribute(..)
and.getAttribute()
) then perhaps you can use a map of maps:and set/get from that map. Where:
session.getId()
Thus you will be able to have values unique to sessions without relying on the servlet API.