Java 管理桌面应用程序中的状态?

Java 管理桌面应用程序中的状态?,java,Java,我想知道Web应用程序和桌面应用程序之间的会话 在web应用程序中,我们可以使用会话或cookie(如果使用EJB,则可以使用HTTP会话状态),但在桌面应用程序中,如何管理对象的状态?(如果不使用Stateful),我通常在文本文件或xml文件中使用托管状态,这意味着当用户登录时,用户信息将保存在托管状态的文本或xml文件中,当用户注销时,系统将删除文本或xml文件。我需要一些建议。首选项API可能就是您想要的(我认为):java.util.prefs我认为您混合了这些概念。您不需要保存桌面应

我想知道Web应用程序和桌面应用程序之间的会话


在web应用程序中,我们可以使用会话或cookie(如果使用EJB,则可以使用HTTP会话状态),但在桌面应用程序中,如何管理对象的状态?(如果不使用Stateful),我通常在文本文件或xml文件中使用托管状态,这意味着当用户登录时,用户信息将保存在托管状态的文本或xml文件中,当用户注销时,系统将删除文本或xml文件。我需要一些建议。

首选项API可能就是您想要的(我认为):
java.util.prefs
我认为您混合了这些概念。您不需要保存桌面应用程序的用户信息,因为您的应用程序只有一个用户,而不是一个web应用程序的多个用户。您的应用程序已经知道谁是它的用户

但是,如果您需要保存应用程序的用户首选项,如前一篇文章所述,您可以使用preferences api,也可以只保存到文本文件。

java 1.4中添加的java.util.pref.preferences类用于存储和获得持久性(在程序执行之间保留在磁盘上)分层名称/值对。这些首选项以依赖于操作系统的方式存储,例如在Windows注册表或Mac首选项文件中

所以,通过使用Preferences API,同样的事情也会发生,比如文件I/O等,您已经在做了,但将以更好的管理方式进行


相反,如果可能的话,您可以尝试使用Map,通过单例类插入/检索用户状态的相应方法访问Map。

谢谢您,Gursel!但是,如果我为一家公司编写桌面应用程序,而他们使用内部网络,那么对于这种情况,最好的方法是什么?什么样的应用程序?。它是数据库应用程序?。如果是数据库应用程序,则可以使用ApplicationServer作为中间层。您可以选择spring或ejb3作为容器技术。对于客户机-服务器通信,RMI、hessian、RMI over http,甚至http都是您的选择。另一种选择,你可以选择2层而不是3层。。然后您的桌面客户端直接与数据库通信,即使在这种情况下,您也可以使用spring作为事务管理器。是的!这是数据库应用程序,首先我只想创建一个看起来像yahoo messenger的应用程序(我认为它使用socket),如果我使用EJB3而不使用Web技术,那么使用有状态会话bean来管理对象状态?