Struts2----配置、運(yùn)行機(jī)制

簡(jiǎn)單來(lái)說(shuō)稽坤,Struts2的作用就是把請(qǐng)求和結(jié)果分開(kāi)丈甸,即提高可擴(kuò)展性,使得更加靈活尿褪。

一睦擂、struts2的基本配置

新建一個(gè)web project項(xiàng)目,下載struts2杖玲,配置Strusts2環(huán)境顿仇。
  • 1配置struts.xml文件。
    將struts-2.1.6目錄中的apps中的struts2-blank.war文件解壓,打開(kāi)WEB-INF---------classes--------struts.xml文件拷貝到新建項(xiàng)目的src目錄下臼闻。

【struts-2.1.6\apps\struts2-blank-2.1.6-\WEB-INF\classes\struts.xml】

  • 2配置struts2所需的jar包鸿吆。
    將【struts-2.1.6\apps\struts2-blank-2.1.6-\WEB-INF\lib】下的jar包拷貝到 項(xiàng)目的WebRoot-----WEB-INF
    ----lib目錄下。
  • 3配置web.xml文件述呐。
    將示例web.xml文件中關(guān)于struts2的filter標(biāo)簽配置復(fù)制到項(xiàng)目的web.xml中惩淳。
1.源碼和javadoc的設(shè)置:
【可查閱struts2源碼,按F1可查閱javadoc】
    在jar包上右鍵---properties---Java Source Attachment/Java Doc Location:

    【struts2的Java Source源碼路徑為:
         \struts-2.3.16.1\src\core\src\main\java
      struts2的Java Doc路徑為:
          \struts-2.3.16.1\docs\struts2-core\apidocs】
2.xml文件自動(dòng)提示設(shè)置
Window----Preferences----輸入catalog----XML catalog----Add---設(shè)置dtd文檔location乓搬、keyType和key

【Location:選擇dtd文檔位置思犁。
      解壓 struts-2.3.16.1\lib\ 目錄下的struts2-core-2.3.16.1.jar文件,選擇struts-2.0.dtd文件位置进肯。
  Key Type:URL
  Key:輸入dtd的URL地址抒倚,在struts.xml文件的上部的DOCTYPE標(biāo)簽中定義的   "http://struts.apache.org/dtds/struts-2.0.dtd"】
  • 4配置action。
    簡(jiǎn)化struts.xml中package標(biāo)簽中的內(nèi)容坷澡。
<constant>標(biāo)簽:struts.devMode為true時(shí)托呕,為開(kāi)發(fā)模式,可更改action的name且不用重啟tomcat
<package>標(biāo)簽:包名频敛,設(shè)置namespace项郊。類(lèi)似java項(xiàng)目中的包名,起到防止action重名的作用斟赚。
<action>標(biāo)簽:設(shè)置action的name着降,設(shè)置相應(yīng)result路徑。

二拗军、Struts2運(yùn)行機(jī)制

Struts2的作用:把請(qǐng)求和視圖分開(kāi)任洞,增強(qiáng)項(xiàng)目的可擴(kuò)展性。

struts2的原理

工作流程:

1发侵、客戶端瀏覽器發(fā)出HTTP請(qǐng)求.
2交掏、根據(jù)web.xml配置,該請(qǐng)求被FilterDispatcher接收
3刃鳄、根據(jù)struts.xml配置盅弛,找到需要調(diào)用的Action類(lèi)和方法, 并通過(guò)IoC方式叔锐,將值注入給Aciton
4挪鹏、Action調(diào)用業(yè)務(wù)邏輯組件處理業(yè)務(wù)邏輯,這一步包含表單驗(yàn)證愉烙。
5讨盒、Action執(zhí)行完畢,根據(jù)struts.xml中的配置找到對(duì)應(yīng)的返回結(jié)果result步责,并跳轉(zhuǎn)到相應(yīng)頁(yè)面
6返顺、返回HTTP響應(yīng)到客戶端瀏覽器


namespace:action訪問(wèn)路徑

用戶自定義Action

1.IndexAction中有execute()方法禀苦,返回“success”字符串,struts.xml的action標(biāo)簽中定義class创南。

當(dāng)struts2的filter讀到struts.xml中的action是一個(gè)class時(shí)伦忠,每次訪問(wèn)struts2都會(huì)調(diào)用createMessage()方法省核,new一個(gè)新的action的class對(duì)象稿辙,調(diào)用execute()方法,不會(huì)出現(xiàn)線程同步的問(wèn)題气忠×诖ⅲ【而struts1每次訪問(wèn)時(shí)會(huì)訪問(wèn)可能用的是同一個(gè)對(duì)象,會(huì)出現(xiàn)線程同步的問(wèn)題旧噪《帜龋】

2.當(dāng)action中不配置class時(shí),可以使IndexAction繼承Action接口淘钟,實(shí)現(xiàn)execute()方法宦赠,返回SUCCESS常量。
3.當(dāng)action中不配置class時(shí)米母,可以使IndexAction繼承ActionSupport類(lèi)勾扭,重寫(xiě)execute方法,返回SUCCESS常量铁瞒。
------------------------------日常開(kāi)發(fā)使用第三種方法妙色。

路徑問(wèn)題

Action--method

Action執(zhí)行的時(shí)候并不一定要執(zhí)行execute()方法
(1)可以在struts.xml配置文件中配置Action的時(shí)候用“method=要執(zhí)行的方法”,并在對(duì)應(yīng)的Action中實(shí)現(xiàn)該方法慧耍。

(2)也可以在url地址中動(dòng)態(tài)指定(動(dòng)態(tài)方法調(diào)用DMI)【推薦】
不指定method身辨,在調(diào)用時(shí)通過(guò)在action后添加“!方法名”的方式調(diào)用Action中的方法。

Action---通配符

使用通配符芍碧,可將配置量降到最低煌珊。但一定要遵守“約定優(yōu)于配置”的原則。

通過(guò)Studentadd訪問(wèn)action


在action配置中沒(méi)有對(duì)應(yīng)的Studentadd的action泌豆,但有Student怪瓶。result中{1}與表示的內(nèi)容相同。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末践美,一起剝皮案震驚了整個(gè)濱河市洗贰,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌陨倡,老刑警劉巖敛滋,帶你破解...
    沈念sama閱讀 206,311評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異兴革,居然都是意外死亡绎晃,警方通過(guò)查閱死者的電腦和手機(jī)蜜唾,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,339評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)庶艾,“玉大人袁余,你說(shuō)我怎么就攤上這事≡圩幔” “怎么了颖榜?”我有些...
    開(kāi)封第一講書(shū)人閱讀 152,671評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)煤裙。 經(jīng)常有香客問(wèn)我掩完,道長(zhǎng),這世上最難降的妖魔是什么硼砰? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,252評(píng)論 1 279
  • 正文 為了忘掉前任且蓬,我火速辦了婚禮,結(jié)果婚禮上题翰,老公的妹妹穿的比我還像新娘恶阴。我一直安慰自己,他們只是感情好豹障,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,253評(píng)論 5 371
  • 文/花漫 我一把揭開(kāi)白布冯事。 她就那樣靜靜地躺著,像睡著了一般沼填。 火紅的嫁衣襯著肌膚如雪桅咆。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 49,031評(píng)論 1 285
  • 那天坞笙,我揣著相機(jī)與錄音岩饼,去河邊找鬼。 笑死薛夜,一個(gè)胖子當(dāng)著我的面吹牛籍茧,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播梯澜,決...
    沈念sama閱讀 38,340評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼寞冯,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了晚伙?” 一聲冷哼從身側(cè)響起吮龄,我...
    開(kāi)封第一講書(shū)人閱讀 36,973評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎咆疗,沒(méi)想到半個(gè)月后漓帚,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,466評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡午磁,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,937評(píng)論 2 323
  • 正文 我和宋清朗相戀三年尝抖,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了毡们。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,039評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡昧辽,死狀恐怖衙熔,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情搅荞,我是刑警寧澤红氯,帶...
    沈念sama閱讀 33,701評(píng)論 4 323
  • 正文 年R本政府宣布,位于F島的核電站取具,受9級(jí)特大地震影響脖隶,放射性物質(zhì)發(fā)生泄漏扁耐。R本人自食惡果不足惜暇检,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,254評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望婉称。 院中可真熱鬧块仆,春花似錦、人聲如沸王暗。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,259評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)俗壹。三九已至科汗,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間绷雏,已是汗流浹背头滔。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,485評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留涎显,地道東北人坤检。 一個(gè)月前我還...
    沈念sama閱讀 45,497評(píng)論 2 354
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像期吓,于是被迫代替她去往敵國(guó)和親早歇。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,786評(píng)論 2 345

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

  • 概述 什么是Struts2的框架Struts2是Struts1的下一代產(chǎn)品讨勤,是在 struts1和WebWork的...
    inke閱讀 2,242評(píng)論 0 50
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語(yǔ)法箭跳,類(lèi)相關(guān)的語(yǔ)法,內(nèi)部類(lèi)的語(yǔ)法潭千,繼承相關(guān)的語(yǔ)法谱姓,異常的語(yǔ)法,線程的語(yǔ)...
    子非魚(yú)_t_閱讀 31,581評(píng)論 18 399
  • 1脊岳、struts2工作流程 Struts 2框架本身大致可以分為3個(gè)部分: 核心控制器FilterDispatch...
    重山楊閱讀 1,513評(píng)論 0 38
  • spring mvc 工作機(jī)制(原理): DispatcherServlet主要用作職責(zé)調(diào)度工作逝段,本身主要用于控制...
    java大濕兄閱讀 1,887評(píng)論 5 24
  • 本文包括: 1垛玻、Struts 2 概述2、Struts 2 快速入門(mén)3奶躯、Struts 2 的執(zhí)行流程4帚桩、配置 st...
    廖少少閱讀 2,949評(píng)論 3 13