struts常用操作

早期開發(fā)模型Servlet+JSP+JavaBean(Model2)顯得力不從心,流程凌亂滤祖、數(shù)據(jù)傳遞無序定踱、缺乏輔助功能棍潘。所以,使用structs2來解決問題崖媚。

struts2開發(fā)步驟

1.拷貝/apps/struts2-blank/WEB-INF/lib中的jar到項目的lib中.

2.在web.xml中配置Struts2的前端控制器-StrutsPrepareAndExecuteFilter.

struts配置web.xml

3.拷貝struts.xml文件到項目的source folder中.
-----------------------上述三步在準備開發(fā)環(huán)境---------
4.定義一個POJO類:HelloAction,并提供一個公共無參數(shù)的sayHello方法.

5.在struts.xml文件中,配置HelloAction.(把HelloAction交給Struts2框架管理).

6.訪問Action.
格式:http://ip:port/contextPath/namespaceName/actionName[.action]
http://ip:port/contextPath/crm/hello[.action]

struts基本流程

action獲取請求參數(shù)的三種方法

第一種:Action本身作為Model對象亦歉,通過setter方法封裝(屬性注入):在Action中提供setXxx方法來接受xxx參數(shù)的值(xxx表示參數(shù)名稱).

**第二種:創(chuàng)建獨立Model對象,頁面通過ognl表達式封裝(屬性注入)使用最多的方式;
**

**第三種:使用ModelDriven接口畅哑,對請求數(shù)據(jù)進行封裝(模型驅(qū)動):
**

訪問ServletApi三種方式

方式1:通過讓Action類去實現(xiàn)感知接口.
此時項目依賴:servlet-api.jar.

ServletRequestAware:感知HttpServletRequest對象肴楷;
ServletResponseAware:感知HttpServletResponse對象;
ServletSessionAware:感知HttpSession對象荠呐;

問題赛蔫,和ServletAPI藕合嚴重;
一般的,我們不要,留給框架自己使用的.

方式2.使用ServletActionContext類,該類提供很多靜態(tài)方法可以返回Servelet API對象.

可以這樣來理解,ServletActionContext就是Servlet API的工具類.
使用的非常頻繁,因為簡單易用.

static HttpServletRequest getRequest() :返回HttpServletRequest對象
static HttpServletResponse getResponse() :返回HttpServletResponse對象
static ServletContext getServletContext() :返回ServletContext對象.

方式3.使用ActionContext類,本身是Struts2對Servlet API的封裝.

什么是ActionContext: Action的環(huán)境對象,每一次請求都是一個新的Action對象,一個ActionContext對象封裝了這一次請求的相關數(shù)據(jù).
ActionContext使用了ThreadLocal模式,所以說是線程安全的.
創(chuàng)建ActionContext對象:
ActionContext ctx = ActionContext.getContext();


ActionContext的常用方法:
此時把作用域?qū)ο笕渴褂肕ap來表示.
獲取請求參數(shù):
以前: String request.getParameter(String name);
String[] request.getParameterValues(String name);
現(xiàn)在:
Map<String,String[]> getParameters();

操作request作用域?qū)ο?
以前:
設置共享數(shù)據(jù):request.setAttribute(String name,Object value);
獲取共享數(shù)據(jù):Object value = request.getAttribute(String name);
現(xiàn)在: ActionContext本身就是對一次請求的封裝.
設置共享數(shù)據(jù):ActionContext.getContext().put(String name,Object value);
獲取共享數(shù)據(jù):Object vale = ActionContext.getContext().get(String name)

操作session作用域?qū)ο?
以前:
設置共享數(shù)據(jù):request.getSession().setAttribute(String name,Object value);
獲取共享數(shù)據(jù):Object value = request.getSession().getAttribute(String name);
現(xiàn)在: 只需要得到Session的Map對象即可.
Map<String,Object> sessionMap = ActionContext.getContext().getSession();
設置共享數(shù)據(jù):sessionMap .put(String name,Object value)
獲取共享數(shù)據(jù):Object value = sessionMap .get(String name)
操作application作用域?qū)ο?
以前:
設置共享數(shù)據(jù):request.getServletContext().setAttribute(String name,Object value);
獲取共享數(shù)據(jù):Object value = request.getgetServletContext().getAttribute(String name);
現(xiàn)在: 只需要得到application的Map對象即可.

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末泥张,一起剝皮案震驚了整個濱河市呵恢,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌媚创,老刑警劉巖渗钉,帶你破解...
    沈念sama閱讀 212,454評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異钞钙,居然都是意外死亡鳄橘,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,553評論 3 385
  • 文/潘曉璐 我一進店門芒炼,熙熙樓的掌柜王于貴愁眉苦臉地迎上來挥唠,“玉大人,你說我怎么就攤上這事焕议”δィ” “怎么了?”我有些...
    開封第一講書人閱讀 157,921評論 0 348
  • 文/不壞的土叔 我叫張陵盅安,是天一觀的道長唤锉。 經(jīng)常有香客問我,道長别瞭,這世上最難降的妖魔是什么窿祥? 我笑而不...
    開封第一講書人閱讀 56,648評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮蝙寨,結(jié)果婚禮上晒衩,老公的妹妹穿的比我還像新娘嗤瞎。我一直安慰自己,他們只是感情好听系,可當我...
    茶點故事閱讀 65,770評論 6 386
  • 文/花漫 我一把揭開白布贝奇。 她就那樣靜靜地躺著,像睡著了一般靠胜。 火紅的嫁衣襯著肌膚如雪掉瞳。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,950評論 1 291
  • 那天浪漠,我揣著相機與錄音陕习,去河邊找鬼。 笑死址愿,一個胖子當著我的面吹牛该镣,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播响谓,決...
    沈念sama閱讀 39,090評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼损合,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了歌粥?” 一聲冷哼從身側(cè)響起塌忽,我...
    開封第一講書人閱讀 37,817評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎失驶,沒想到半個月后土居,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,275評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡嬉探,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,592評論 2 327
  • 正文 我和宋清朗相戀三年擦耀,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片涩堤。...
    茶點故事閱讀 38,724評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡眷蜓,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出胎围,到底是詐尸還是另有隱情吁系,我是刑警寧澤,帶...
    沈念sama閱讀 34,409評論 4 333
  • 正文 年R本政府宣布白魂,位于F島的核電站汽纤,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏福荸。R本人自食惡果不足惜蕴坪,卻給世界環(huán)境...
    茶點故事閱讀 40,052評論 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧背传,春花似錦呆瞻、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,815評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至挺狰,卻和暖如春明郭,著一層夾襖步出監(jiān)牢的瞬間买窟,已是汗流浹背丰泊。 一陣腳步聲響...
    開封第一講書人閱讀 32,043評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留始绍,地道東北人瞳购。 一個月前我還...
    沈念sama閱讀 46,503評論 2 361
  • 正文 我出身青樓,卻偏偏與公主長得像亏推,于是被迫代替她去往敵國和親学赛。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,627評論 2 350

推薦閱讀更多精彩內(nèi)容

  • 1. Java基礎部分 基礎部分的順序:基本語法吞杭,類相關的語法盏浇,內(nèi)部類的語法,繼承相關的語法芽狗,異常的語法绢掰,線程的語...
    子非魚_t_閱讀 31,602評論 18 399
  • 概述 什么是Struts2的框架Struts2是Struts1的下一代產(chǎn)品,是在 struts1和WebWork的...
    inke閱讀 2,249評論 0 50
  • 一. Java基礎部分.................................................
    wy_sure閱讀 3,805評論 0 11
  • 標簽 如果要配置的標簽童擎,那么必須要先配置標簽滴劲,代表的包的概念。 包含的屬性 name包的名稱顾复,要求是唯一的班挖,管理a...
    偷偷得路過閱讀 1,331評論 0 0
  • 旅行的意義(1) 從小到大,從旅游到旅行芯砸,從走馬觀花到植入心靈萧芙,我每一次都告訴自己要記錄下這些點點滴滴,可到...
    kingsqueen閱讀 478評論 0 2