asp.net では、global.asax
session_start イベントを持つことができます。ユーザーが最初に Web サイトにアクセスすると、セッションが開始され、イベントがトリガーされます。ストラットまたはJava指定で同様のものはありますか?
3 に答える
javax.servlet.http.HttpSessionListener インターフェイスを実装し、web.xml に登録できます。実装クラスのメソッドは、セッションの作成/破棄などで呼び出されます。
web.xml へのエントリは、次のようになります。
<listener>
<description>sessionListener</description>
<listener-class>
your.com.HttpSessionListenerImplementation
</listener-class>
</listener>
これはストラットとは関係ありませんが、サーブレット API の一部であり、任意のサーブレット コンテナーで使用できます。
Struts2 にはありませんし、組み込み機能としてもありません。もちろん、これはインターセプター/インターセプター スタックで解決できます。
Java EE では、セッションはアプリケーション サーバーの役割です。そのため、少なくとも struts2 の観点からは、常にセッションがあると想定できるはずです。
この男は、インターセプターを作成する方法の非常に明確な例を示しています: http://www.mkyong.com/struts2/struts-2-creating-own-interceptor/
インターセプターの詳細については、http ://struts.apache.org/release/2.1.x/docs/interceptors.html を参照してください。
最後のリンクの一番下に、次のリンクがあります:セッションにアクセスするにはどうすればよいですか(アクションでは SessionAware を使用するため、Interceptor からアクセスしますが、この方法でもアクセスできます)。
通常、誰かがログインしたときに何か特別なことをしたいと思うでしょう。サインイン アクションは、必要なものをセッションに配置するのに適した場所です。何らかの理由で、以前に何かを配置したいので、繰り返します:
- カスタム SessionSetup インターセプターを作成する
- インターセプターを登録し、struts.xml でカスタム インターセプター スタックを作成します。
- すべてのパッケージでこのスタックを使用します。