無線&移動互聯網技術研發

          換位思考·····
          posts - 19, comments - 53, trackbacks - 0, articles - 283
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          日歷

          <2025年7月>
          293012345
          6789101112
          13141516171819
          20212223242526
          272829303112
          3456789

          我參與的團隊

          最新隨筆

          搜索

          •  

          積分與排名

          • 積分 - 358273
          • 排名 - 155

          struts1中,獲得到系統的request或者session對象非常方便,都是按照形參傳遞的,但是在struts2中,requestsession都被隱藏了

          struts提供兩種方式訪問sessionrequest,其中比較常用的是利用SPRING里面所說的IOC即控制反轉

          IOC方式:

          action類實現ServletRequestAware接口,并新建一個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方式

          這種方式主要是利用了com.opensymphony.xwork2.ActionContext類以及org.apache.struts2.ServletActionContext類,具體的方法如下所示。

          獲得request對象:

          A. HttpServletRequest request = ServletActionContext.getRequest ();

          BActionContext ct = ActionContext.getContext()

             HttpServletRequest request = (HttpServletRequest)ct.get(ServletActionContext. HTTP_REQUEST );

          獲得session對象:

          Struts2中底層的session都被封裝成了Map類型,我們稱之為SessionMap,而平常我們所說的session則是指HttpSession對象,具體的獲得方法如下所示。

          AMap session = ActionContext.getSession();

          BMap session = (Map)ActionContext.getContext().get(ActionContext.SESSION);

          得到這個SessionMap之后我們就可以對session進行讀寫了,如果我們想得到原始的HttpSession可以首先得到HttpServletRequest對象,然后通過request.getSession()來取得原始的HttpSession對象。一般情況下SessionMap已經可以完成所有的工作,我們不必再去碰底層的session了。

          主站蜘蛛池模板: 秀山| 雅江县| 齐河县| 临夏县| 吉林市| 太保市| 玉环县| 惠东县| 尼木县| 吉木乃县| 崇明县| 安阳市| 五指山市| 六盘水市| 永靖县| 施秉县| 乐业县| 吉安县| 庄河市| 东乌| 和平区| 大足县| 睢宁县| 巴马| 百色市| 平顺县| 澄江县| 武强县| 广宁县| 太原市| 来安县| 海南省| 拉孜县| 崇义县| 遂溪县| 大埔区| 中宁县| 陵水| 彩票| 大宁县| 石林|