Struts 2はSessionとRequestを獲得しました.

2870 ワード

http://www.blogjava.net/lyyb2001/archive/2008/03/07/184593.htmlから回転
struts 1では、システムのrequestまたはsessionオブジェクトを得るのは非常に便利であり、形によって伝達されていますが、struts 2では、requestとsessionはstructsによって隠されています.この中ではSPRINGによるIOC制御反転IOC方式がよく使われています.そして、新しいHttpServletRequest requestを作成します.
public class UserLoginAction extends ActionSupport implements ServletRequestAware{
   public void setServletRequest(HttpServletRequest request) {
     this.request=request;
  }
 次に生成できるrequestは、request.getRemoteAddr()actionクラスなどのオブジェクトを獲得し、SessionAwareインターフェースを実現し、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はすべての仕事を完成しています.私たちはもう底のセッションに触れる必要はありません.