0

私はEJBSessionBeanについて読んでいます。私は主に春に取り組んできましたが、ウェブサイトでは通常のセッションオブジェクトでセッションを維持しています。セッションBeanのドキュメントによると、ショッピングカートを持っている場合は、セッションBeanを使用しますか?つまり、JSPレベルでセッションを処理する必要がないということですか?このセッションBeanは、ユーザーセッションを維持するためにも使用できます。

私は上記の段落で最後に書いたものに同意しません。コードの繰り返しとメモリの余分な使用ではありませんか。

私がまったく得ていないこの概念を説明してください。

4

2 に答える 2

0

サーブレット内のセッションは、リクエストオブジェクトを介して取得されたHttpSessionオブジェクトを介してサーブレットコンテナによって維持されます。新しいHttpSessionオブジェクトを実際にインスタンス化することはできません。また、ビジネスロジックは含まれていませんが、オブジェクトを格納する場所です。

EJBのセッションは、SessionBeansを使用して維持されます。ビジネスロジックを含めることができ、クライアントが使用できるBeanを設計します。ステートフルとステートレスの2つの異なるセッションBeanがあります。最初のものは、どういうわけか単一のクライアントに接続されています。そのクライアントの状態を維持し、そのクライアントのみが使用でき、クライアントが「停止」すると、セッションBeanは「失われ」ます。

ステートレスセッションBeanは状態を維持せず、同じクライアントが2つの呼び出しを続けても同じステートレスBeanを使用するという保証はありません。ステートレスセッションEJBのライフサイクルは、ステートフルセッションEJBのライフサイクルとは少し異なります。各セッションを追跡し、クライアントからの要求をセッションBeanの正しいインスタンスにリダイレクトする方法を正確に把握するのは、EJBコンテナの責任です。これを行う方法はベンダーに依存し、契約の一部です。

于 2012-06-29T06:44:10.327 に答える
0

したがって、EJBは、ビジネスロジックをカプセル化し、トランザクションとセキュリティを処理するサーバー側コンポーネントとして定義できます。また、メッセージング、スケジューリング、リモートアクセス、Webサービスエンドポイント(SOAPおよびREST)、依存性注入、コンポーネントのライフサイクル、インターセプターを使用したAOPなどの統合スタックも備えています。

セッションEJBには次の3つのタイプがあります。

  1. ステートレス:セッションBeanにはメソッド間の会話状態が含まれておらず、任意のインスタンスを任意のクライアントに使用できます。
  2. ステートフル:セッションBeanには会話状態が含まれており、単一ユーザーのメソッド間で保持する必要があります。
  3. シングルトン:単一セッションBeanはクライアント間で共有され、同時アクセスをサポートします。

Webアプリケーションでは、通常、ステートレスBeanを使用して製品のリストを作成します。次に、あなたはステートフルBeanを使用して商品をショッピングカートに保管します。

うまくいけば、これは少し役立つでしょう。

于 2012-06-29T06:50:39.977 に答える