任何人都知道我们是否可以在Java桌面应用程序中创建类似会话的机制? 我将开发一个java桌面应用程序,它具有登录机制,以确保只有授权人员才能访问存储的信息,然后我认为如果java可以像session一样,或者是否有任何机制来执行类似会话的操作。就这样。 有人可以解释一下吗?
答案 0 :(得分:4)
基本上,会话由一组二进制或序列化对象组成,映射到会话ID。独立或最有可能通过地图或表格。所以,是的,你可以通过使用智能数据库架构来实现类似的东西。请注意谁可以看到(并使用)该数据库。
我认为,你的方法不是最好的方法。毕竟我认为应用程序将在每台机器上随时由单个用户使用,因此我认为这不是最好的方法。相反,你应该以某种方式保存当前的“会话”(AKA应用程序状态),而不是像Servlet那样考虑会话。
答案 1 :(得分:0)
会话只是一个每个用户单身的哈希映射。因此,您可以认为每个用户都有自己的hashmap,允许他们存储对象。在servlet中,会话由HttpSession
接口提供。
类似会话的机制取决于您的应用程序的体系结构。如果它是一个胖客户端实现,它只包含2层(数据库层和Java客户端),并且大多数业务代码都嵌入在java应用程序中然后每个用户都有自己的JVM来在他们的机器上运行java代码。因此,你只需为你的桌面应用程序创建一个单独的hashmap。当应用程序启动时,只需初始化这个hashmap并输入一个键及其布尔值来表示用户的登录状态(例如singltonHashmap.put ("LOGIN" , false)
)。一旦用户登录,您应该将LOGIN键的值更新为true以指示用户已登录。
如果Java桌面应用程序是瘦客户端实现,其中有一个应用程序服务器来处理来自所有用户的所有请求,那么您可以使用stateful session bean
定义的Enterprise JavaBeans specification (EJB)
。有一个客户端和有状态会话bean实例之间的一对一映射。应用程序服务器将确保同一客户端的后续方法调用由同一个有状态bean实例处理。您只需在有状态会话bean中声明一个hashmap,并在该hashmap中的对话期间放置您想要跟踪的对象。以下是an example供您参考。