2011-05-10 56 views
0

任何人都知道我们是否可以在java桌面应用程序中创建类似会话的机制? 我将开发一个java桌面应用程序,它具有登录机制以确保只有经过授权的人可以访问存储的信息,然后我认为如果java可以像会话一样,或者有任何机制来执行会话等。就这样。 有人可以解释吗?在java桌面的会话

回答

3

基本上,会话由映射到会话ID的一组二进制或序列化对象组成。独立或最有可能通过地图或表格。所以是的,您可以通过使用智能数据库架构来实现类似的功能。只要注意谁可以看到(并使用)该数据库。

不过,我认为你的方法并不是最好的方法。毕竟,我认为每台机器上的任何时候都会有一个用户使用该应用程序,所以我认为这不是最好的方法。相反,你应该以某种方式保存当前的“会话”(AKA应用程序状态),而不是像Servlet方式那样考虑会话。

0

会话只是单个用户的散列表。所以,你可以认为每个用户都有自己的hashmap,允许他们存储对象。在servlet中,会话由HttpSession接口提供。

类会话机制取决于应用程序的体系结构。如果它是一个仅包含2层(数据库层和java客户端)的胖客户端实现,并且大多数业务代码都嵌入在java应用程序,那么每个用户都有自己的JVM来在他们的机器上运行java代码。因此,您只需为桌面应用程序创建一个singleton散列表。当应用程序启动时,只需初始化此散列映射并将键和它的布尔值指示用户的登录状态(例如singltonHashmap.put ("LOGIN" , false))。一旦用户登录,您应该将LOGIN键的值更新为true以指示用户已登录。

如果Java桌面应用程序是瘦客户端的实现,它的应用程序服务器处理来自所有用户的所有要求,那么你可以使用由Enterprise JavaBeans specification (EJB)。有定义的stateful session bean是之间的一个一对一的映射客户端和有状态会话bean实例。应用程序服务器将确保同一个客户端的后续方法调用由相同的有状态bean实例处理。您只需在有状态会话Bean中声明一个HashMap,并将您希望在对话期间跟踪的对象放入该HashMap中。这里是an example供您参考。