Struts 2はSessionとrequestオブジェクトの2つの方式を取得します。


struts 2には、requestとsessionが隠されています。
strutsは2つの方法でsessionとrequestにアクセスすることを提供します。その中でよく使われているのはSPRINGの中で言われているIOCを利用して逆転を制御することです。
IOC方式:
actionクラスはServletRequest Awareインターフェースを実現し、HttpServletRequest requestを新たに作成します。

public class UserLoginAction extends ActionSupport implements ServletRequestAware{
   public void setServletRequest(HttpServletRequest request) {
     this.request=request;
}
次に生成できるrequestは、request.getRemoteAddr()のようなオブジェクトを得ることができる。
actionクラスはSession Awareインターフェースを実現し、MAPオブジェクトsessionを作成します。

public class UserLoginAction extends ActionSupport implements ServletRequestAware,SessionAware{
   public void setServletRequest(HttpServletRequest request) {
     this.request=request;
}

public void setSession(Map session) {
  this.session=session;  
}
非IOC方式
この方式は主にcomp.opensymphone.xwork 2.アクションContect類とorg.apphe.struts 2.ServletAction Contect類を利用しています。具体的な方法は以下の通りです。
requestオブジェクトを取得:
A.
HttpServletRequest request = ServletActionContext.getRequest ();
B.
ActionContext ct= ActionContext.getContext()
   HttpServletRequest request=
(HttpServletRequest)ct.get(ServletActionContext. HTTP_REQUEST );
はセッションオブジェクトを獲得した:
Struts 2の底にあるsessionはすべてMapタイプにカプセル化されています。私たちはSessionMapと言いますが、普段私たちが話しているsessionはHttpSessionオブジェクトを指しています。具体的な方法は以下の通りです。
A.
Map session=ActionContext.getSession();
B.
Map session=(Map)ActionContext.getContext().get (ActionContext.SESSION);
このSession Mapを手に入れたら、私たちはsessionを読み、書くことができます。もしオリジナルのHttpSessionを手に入れたいなら、まずHttpServletRequestオブジェクトを入手して、request.get Session()を通じてオリジナルのHttpSessionオブジェクトを取得します。基本的にSession Mapはすべての仕事を完成できます。私たちはもう底のセッションに触れる必要はありません。