2011-05-10 6 views
0

私たちは、Javaデスクトップアプリケーションでセッションのようなメカニズムを作成することができますか? 私は、権限のある人だけが格納された情報にアクセスできるようにするためのログインメカニズムを備えたjavaデスクトップアプリケーションを開発するつもりです。もしjavaがセッションのようなものなら、セッションのような何らかの仕組みがあればいいと思います。それで全部です。 誰かが説明できますか?セッションJavaデスクトップで

答えて

3

基本的にセッションは、セッションIDにマップされたバイナリまたはシリアル化されたオブジェクトのセットで構成されます。独立しているか、おそらくマップまたは表を使用しています。したがって、スマートなDBスキーマを使用することで、そのようなものを実装できます。そのDBを誰が見ることができるか(そして使用する)ことができるのは慎重にしてください。

あなたのアプローチは最良ではありません。結局のところ、各マシンでいつでも1人のユーザーがアプリを使用すると思うので、これが最善のアプローチだとは思わない。むしろ、サーブレットのようにセッションを考えるのではなく、現在の「セッション」(AKAアプリ状態)を何らかの方法で保存する必要があります。

0

セッションは、ユーザーあたりシングルトンのハッシュマップに過ぎません。つまり、すべてのユーザーがオブジェクトを格納できる独自のハッシュマップを持っていると考えることができます。サーブレットでは、セッションはHttpSessionインターフェイスによって提供されます。

セッションのようなメカニズムは、アプリケーションのアーキテクチャに依存します.2層(データベース層とJavaクライアント)しか含まれないシッククライアントの実装であれば、ほとんどのビジネスコードはJavaアプリケーションでは、すべてのユーザーが独自のJVMを使用してマシン上でJavaコードを実行します。デスクトップアプリケーション用のシングルトンハッシュマップを作成するだけです。アプリケーションが起動すると、このハッシュマップを初期化して、ユーザーのログイン状況(例:singltonHashmap.put ("LOGIN" , false))。ユーザーのログイン時に、LOGINキーの値をtrueに更新して、ユーザーがログインしていることを示す必要があります。

Javaデスクトップアプリケーションが、すべてのユーザーからのすべての要求を処理するアプリケーションサーバーを持つシンクライアント実装の場合は、Enterprise JavaBeans specification (EJB)で定義されたstateful session beanを使用できます.1つのクライアントとステートフルセッションBeanのインスタンスです。アプリケーションサーバーは、同じクライアントによる後続のメソッド呼び出しが、同じステートフルBeanインスタンスによって処理されるようにします。ステートフルセッションBean内にハッシュマップを宣言し、会話中に追跡したいオブジェクトをそのハッシュマップに配置するだけです。あなたの参照のためにここにan exampleがあります。

関連する問題