<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Mark's Java Blog
    MyEclipse, Java EE, Spring, Struts, Hibernate, JPA, SWT, Swing, AJAX, JavaScript,SOA
    Struts2訪問隱藏的request和session

    在Struts1.*中,要想訪問request、response以及session等Servlet對(duì)象是很方便的,因?yàn)樗鼈円恢笔亲鳛樾螀⒃诟鱾€(gè)方法之間進(jìn)行傳遞的,而在Struts2中我們就很難看到它們的芳蹤了,因?yàn)槲覀儷@得表單中的值都是通過預(yù)先設(shè)置好了的get方法來得到的,那么如果有些參數(shù)我們必須通過request.getParametre或者session.getAttribute來得到,那么應(yīng)該怎么做呢?按照Max的教程上的說法,可以分為兩種:IoC方式和非IoC方式,如何理解這兩種方式的區(qū)別呢?IoC是Spring里面的特征之一,字面意思是反轉(zhuǎn)控制,說白了就是依賴注入,比方說類A依賴類B,那么就主動(dòng)的給A注入一個(gè)類B的對(duì)象,下面看一下這兩種方法的具體實(shí)現(xiàn)。

    1.非Ioc方式

    這種方式主要是利用了com.opensymphony.xwork2.ActionContext類以及org.apache.struts2.ServletActionContext類,具體的方法如下所示。
    獲得request對(duì)象:

    A.HttpServletRequest request = ServletActionContext.getRequest ();
    B.ActionContext ct= ActionContext.getContext()
       HttpServletRequest request=(HttpServletRequest)ct.get(ServletActionContext.HTTP_REQUEST);

    獲得session對(duì)象:

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

    A.Map session=ActionContext.getSession();
    B.Map session=(Map)ActionContext.getContext().get(ActionContext.SESSION);
    得到這個(gè)SessionMap之后我們就可以對(duì)session進(jìn)行讀寫了,如果我們想得到原始的HttpSession可以首先得到HttpServletRequest對(duì)象,然后通過request.getSession()來取得原始的HttpSession對(duì)象。一般情況下SessionMap已經(jīng)可以完成所有的工作,我們不必再去碰底層的session了。

    2.IoC方式

    這種方式相對(duì)來說變化就比較少了,具體流程如下所示。
    獲得request對(duì)象:

    第一步:讓action實(shí)現(xiàn)ServletRequestAware接口
    第二步:在action中聲明一個(gè)HttpServletRequest類型的實(shí)例變量
    第三步:在action中實(shí)現(xiàn)ServletRequestAware接口的setServletRequest方法,實(shí)現(xiàn)方式很簡單,如下所示。
             private HttpServletRequest request;
    publicvoid setServletRequest(HttpServletRequest request) {
                this.request = request;
        }

    獲得Session對(duì)象(注意,此時(shí)的session是SessionMap類型):

    第一步:讓action實(shí)現(xiàn)SessionAware接口
    第二步:在action中聲明一個(gè)HttpServletRequest類型的實(shí)例變量
    第三步:在action中實(shí)現(xiàn)SessionAware接口的setSession方法,實(shí)現(xiàn)方式很簡單,如下所示。
             private Map session;
    publicvoid setSession(Map session) {
                this. session = session;
        }
     Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1721226
    posted on 2008-05-27 09:26 Mark 閱讀(477) 評(píng)論(0)  編輯  收藏 所屬分類: Struts2

    只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     
     
    主站蜘蛛池模板: 中国一级特黄的片子免费 | 黄色网址免费大全| 精品国产亚洲一区二区三区| 最近中文字幕完整版免费高清| 岛国大片免费在线观看| 亚洲国产福利精品一区二区 | 男女免费观看在线爽爽爽视频 | 污视频网站免费在线观看| 日韩一品在线播放视频一品免费| 亚洲av无码不卡| 最近中文字幕电影大全免费版 | 免费大黄网站在线观看| 黄网站色成年片大免费高清 | 伊人久久亚洲综合影院| 一区二区视频在线免费观看| 亚洲熟妇无码八AV在线播放| 久久综合给合久久国产免费 | 日韩成人在线免费视频| 美女视频黄a视频全免费网站色| 亚洲精品尤物yw在线影院| 日韩亚洲国产高清免费视频| 国产网站免费观看| 久久国产一片免费观看| 日韩高清免费观看| 福利免费在线观看| 久久亚洲精品成人无码网站 | 亚洲精品无码久久毛片| 在线播放免费人成毛片乱码| 亚洲综合无码一区二区三区| 色窝窝免费一区二区三区| 羞羞网站免费观看| 久久精品夜色国产亚洲av| 欧美男同gv免费网站观看| 日本永久免费a∨在线视频| 国产亚洲精品岁国产微拍精品| 亚洲免费人成视频观看| 一个人看的免费高清视频日本| 色婷婷六月亚洲婷婷丁香| 成人免费视频国产| 精品熟女少妇av免费久久| 免费人成动漫在线播放r18|