Struts2知識點(diǎn)總結(jié)_第1頁
Struts2知識點(diǎn)總結(jié)_第2頁
Struts2知識點(diǎn)總結(jié)_第3頁
Struts2知識點(diǎn)總結(jié)_第4頁
Struts2知識點(diǎn)總結(jié)_第5頁
已閱讀5頁,還剩9頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、Struts2基礎(chǔ)知識Struts2概述1.Struts2框架應(yīng)用javaee三層結(jié)構(gòu)中的web層框架。2.Struts2框架在struts1和webwork基礎(chǔ)之上發(fā)展的全新框架。3.Struts2所解決的問題:在以往實(shí)現(xiàn)一個(gè)功能時(shí),都需要寫很多的servlet,從而造成后期維護(hù)上的不方便。圖解:4.現(xiàn)在比較穩(wěn)定的Struts2版本struts-all.zip5.web層常見框架1.struts2.springMVCStruts2框架入門1.導(dǎo)入jar包1.在lib里面有jar包,但不能全部導(dǎo)入,因?yàn)槔锩婧幸恍﹕pring包,是不能使用的,導(dǎo)入會導(dǎo)致程序不能運(yùn)行。2.到app目錄里面復(fù)制案

2、例的jar包是最好的方法。2.創(chuàng)建action3.配置action類的訪問路徑1.創(chuàng)建struts2核心配置文件,該核心配置文件位置和名稱是固定的,位置必須在src下面,名稱為struts.xml 。2.引入dtd約束,可以在案例文件中找到,復(fù)制在struts.xml文件中即可。3.action的配置*注意訪問路徑:/端口號/項(xiàng)目名/action名.action注意:.action可以省略,但建議不要省略,為了兼容一些老版本的瀏覽器。4.配置Struts2的過濾器,可以在案例中的web.xml文件中找到,復(fù)制粘貼即可。Struts2執(zhí)行過程圖解:Struts2配置Struts2的核心配置文件1

3、.名稱和位置是固定的。2.在配置文件中主要有三個(gè)標(biāo)簽,package、action、result,以及各個(gè)標(biāo)簽內(nèi)的其它屬性。標(biāo)簽package1.類似于代碼包,區(qū)別不同的action,要配置action,必須首先寫package標(biāo)簽,在package里面才能配置action 。2.package標(biāo)簽屬性1.name屬性,name屬性的值跟功能本身沒有關(guān)系的,在一個(gè)配置文件中可以寫多個(gè)package標(biāo)簽,但name的屬性值不能相同。2.extends屬性,該屬性的值是固定的,在package里面配置的類具有action功能。3.namespace屬性,該屬性值和action標(biāo)簽里面的name的屬

4、性值構(gòu)成訪問路徑,可以不寫,推薦寫上,默認(rèn)為/。標(biāo)簽action1.action標(biāo)簽配置action訪問路徑。2.action標(biāo)簽屬性1.name屬性namespace屬性值和action標(biāo)簽里面的name屬性值構(gòu)成訪問路徑。在package標(biāo)簽里面可以寫多個(gè)action標(biāo)簽,但是action的屬性name的值不能夠相同。2.class屬性 action的全路徑,即包名+類名3.method屬性比如在action里面默認(rèn)執(zhí)行的方法是execute方法,但是在action里面寫其他的方法,讓action里面多個(gè)方法執(zhí)行,使用method進(jìn)行配置。標(biāo)簽result1.根據(jù)方法的返回值,配置到不同的

5、路徑下。2.result標(biāo)簽屬性1.name屬性和action中method所調(diào)用的方法返回值一致。2.type屬性配置如何到路徑中(轉(zhuǎn)發(fā)/重定向),該屬性值的默認(rèn)是做轉(zhuǎn)發(fā)操作。標(biāo)簽constant1.是一種常量標(biāo)簽2.修改Struts2的默認(rèn)常量值1.常用方式在struts.xml中進(jìn)行配置。2.其它兩種方式1.在src下面創(chuàng)建perties文件并修改。2.在web.xml文件中進(jìn)行修改。3.Struts2最常用的常量struts.il8n.encoding=UTF-8,解決表單在通過post方式提交中文時(shí),中文亂碼的問題。分模塊開發(fā)1.單獨(dú)寫配置文件,把配置文件引入到核

6、心配置文件中,從而解決多人操作一個(gè)核心文件的問題。2.配置用法在.xml文件中加入<include file=”文件路徑”></include>即可。Action的編寫方式1.action有三種編寫方式第一種 創(chuàng)建普通類,這個(gè)不繼承任何類,不實(shí)現(xiàn)任何接口第二種 創(chuàng)建類,實(shí)現(xiàn)Action接口,實(shí)現(xiàn)execute方法第三種 創(chuàng)建類,繼承ActionSupport訪問action的方法1.有三種方式訪問action的方法第一種 使用action標(biāo)簽的method屬性,在這個(gè)屬性里面寫要執(zhí)行的action方法。缺陷:action每個(gè)方法都需要配置,如果action里面有多個(gè)方法

7、,需要配置很多的action第二種 使用通配符實(shí)現(xiàn)(提高代碼復(fù)用性)在action標(biāo)簽中的name屬性寫成”前綴_*”,method屬性成”1”即可,該*號表示的是action方法中的各個(gè)方法,而1是取name屬性值的第幾個(gè)*號。第三種 動態(tài)訪問實(shí)現(xiàn)(了解,極少使用)2.注意*1.在action里面的方法有返回值,其類型必須為String2.action里面的方法可以沒有返回值,沒有返回值的時(shí)候,action標(biāo)簽里的result標(biāo)簽可以不配置。action方法設(shè)置無返回值的方法有兩種,一種是將方法的返回值類型設(shè)為void,另一種是返回一個(gè)”none”的字符串。Struts2筆記(一)1、結(jié)果頁

8、面的配置(result標(biāo)簽)1、作用:result標(biāo)簽配置action方法的返回值到不同的路徑里面。2、全局頁面的使用:當(dāng)在result標(biāo)簽中返回的值和路徑是一致的時(shí)候,就可使用全局頁面。1、配置方法:在package標(biāo)簽下配置2、注意:該標(biāo)簽只能在一個(gè)package標(biāo)簽中使用,如果有多個(gè)標(biāo)簽,需要重新定義。3、局部結(jié)果頁面:指的就是在action標(biāo)簽里配置1、配置方法:在action標(biāo)簽下配置2、注意:如果既配置了全局,又配置了局部,會以局部為準(zhǔn),全局不起作用。4、type屬性1、作用:如何到路徑里面(即定義轉(zhuǎn)發(fā)還是重定向)。2、屬性值:1、默認(rèn)值:dispatcher,一般沒有寫,就是轉(zhuǎn)發(fā)

9、操作,瀏覽器地址欄不會改變。2、重定向:redirect,瀏覽器地址欄會改變 。3、chain:轉(zhuǎn)發(fā)到action,一般不使用,因?yàn)橛芯彺妗?、redirectAction:重定向到action 。2、使用Action獲取表單提交的數(shù)據(jù)1、action獲取表單提交數(shù)據(jù)的三種主要方式:1、使用ActionContext類。1、主要使用的方法:因?yàn)樵摲椒ㄊ菍ο蠓椒?,所以需要一個(gè)ActionContext對象來調(diào)用,而創(chuàng)建ActionContext對象可以使用該類的一個(gè)靜態(tài)方法來創(chuàng)建2、使用ServletActionContext類。1、主要使用的方法:3、使用接口注入方法(一般不用)。1、使用步驟

10、:1、實(shí)現(xiàn)ServletRequestAware接口。2、實(shí)現(xiàn)該接口的方法。3、在該類中定義一個(gè)HttpServletRequest對象,并賦值。3、在action中操作域?qū)ο?、在Servlet中三個(gè)域?qū)ο螅簉equest、session、servletContext2、操作三個(gè)域?qū)ο?、request對象使用ServletActionContext類的靜態(tài)方法getRequest(),得到該對象。2、session對象通過第一個(gè)知識點(diǎn)獲取到request對象,再通過request對象獲取到該對象。3、servletContext對象通過第一個(gè)知識點(diǎn)獲取到request對象,再通過reque

11、st對象獲取到該對象。4、使用Struts2封裝獲取表單數(shù)據(jù)1、屬性封裝1、步驟:1、在類里定義私有成員變量,變量名必須和表單中name的值一致。2、使用get和set方法進(jìn)行封裝即可。2、缺點(diǎn):不能把數(shù)據(jù)直接封裝到實(shí)體類的對象里面。2、模型驅(qū)動封裝1、作用:可以直接把表單數(shù)據(jù)封裝到實(shí)體類對象里面。2、操作步驟:1、action實(shí)現(xiàn)接口ModelDriven2、實(shí)現(xiàn)該接口的getModel方法3、在action里面創(chuàng)建實(shí)體類對象4、注意:表單輸入項(xiàng)name的屬性值和實(shí)體類屬性名稱要一致。注意:使用模型封裝和屬性封裝時(shí),在一個(gè)action中,獲取表單數(shù)據(jù)可以屬性封裝,也可以模型封裝,但是不能兩個(gè)

12、封裝同時(shí)使用,如果同時(shí)使用,只會執(zhí)行模型封裝。3、表達(dá)式封裝1、作用:可以把表單數(shù)據(jù)封裝到實(shí)體類對象里面。2、步驟:1、在action類里面聲明實(shí)體類2、生成實(shí)體類變量的get和set方法。3、在表單輸入項(xiàng)的name屬性值里面寫表達(dá)式形式的數(shù)據(jù)。3、優(yōu)點(diǎn):可以把數(shù)據(jù)封裝到不同的實(shí)體類對象里面。5、表單數(shù)據(jù)封裝到集合里面1、封裝數(shù)據(jù)到List集合1、操作步驟1、在action中聲明List集合2、生成該集合變量的get和set方法3、在表單輸入項(xiàng)的name屬性里寫表達(dá)式2、封裝數(shù)據(jù)到Map集合1、操作步驟1、在action中聲明Map集合2、生成該集合變量的get和set方法3、在表單輸入項(xiàng)的n

13、ame屬性里寫表達(dá)式Struts2筆記(二)1、結(jié)果頁面的配置(result標(biāo)簽)1、作用:result標(biāo)簽配置action方法的返回值到不同的路徑里面。2、全局頁面的使用:當(dāng)在result標(biāo)簽中返回的值和路徑是一致的時(shí)候,就可使用全局頁面。1、配置方法:在package標(biāo)簽下配置2、注意:該標(biāo)簽只能在一個(gè)package標(biāo)簽中使用,如果有多個(gè)標(biāo)簽,需要重新定義。3、局部結(jié)果頁面:指的就是在action標(biāo)簽里配置1、配置方法:在action標(biāo)簽下配置2、注意:如果既配置了全局,又配置了局部,會以局部為準(zhǔn),全局不起作用。4、type屬性1、作用:如何到路徑里面(即定義轉(zhuǎn)發(fā)還是重定向)。2、屬性值:

14、1、默認(rèn)值:dispatcher,一般沒有寫,就是轉(zhuǎn)發(fā)操作,瀏覽器地址欄不會改變。2、重定向:redirect,瀏覽器地址欄會改變 。3、chain:轉(zhuǎn)發(fā)到action,一般不使用,因?yàn)橛芯彺妗?、redirectAction:重定向到action 。2、使用Action獲取表單提交的數(shù)據(jù)1、action獲取表單提交數(shù)據(jù)的三種主要方式:1、使用ActionContext類。1、主要使用的方法:因?yàn)樵摲椒ㄊ菍ο蠓椒?,所以需要一個(gè)ActionContext對象來調(diào)用,而創(chuàng)建ActionContext對象可以使用該類的一個(gè)靜態(tài)方法來創(chuàng)建2、使用ServletActionContext類。1、主要使用

15、的方法:3、使用接口注入方法(一般不用)。1、使用步驟:1、實(shí)現(xiàn)ServletRequestAware接口。2、實(shí)現(xiàn)該接口的方法。3、在該類中定義一個(gè)HttpServletRequest對象,并賦值。3、在action中操作域?qū)ο?、在Servlet中三個(gè)域?qū)ο螅簉equest、session、servletContext2、操作三個(gè)域?qū)ο?、request對象使用ServletActionContext類的靜態(tài)方法getRequest(),得到該對象。2、session對象通過第一個(gè)知識點(diǎn)獲取到request對象,再通過request對象獲取到該對象。3、servletContext對象通過

16、第一個(gè)知識點(diǎn)獲取到request對象,再通過request對象獲取到該對象。4、使用Struts2封裝獲取表單數(shù)據(jù)1、屬性封裝1、步驟:1、在類里定義私有成員變量,變量名必須和表單中name的值一致。2、使用get和set方法進(jìn)行封裝即可。2、缺點(diǎn):不能把數(shù)據(jù)直接封裝到實(shí)體類的對象里面。2、模型驅(qū)動封裝1、作用:可以直接把表單數(shù)據(jù)封裝到實(shí)體類對象里面。2、操作步驟:1、action實(shí)現(xiàn)接口ModelDriven2、實(shí)現(xiàn)該接口的getModel方法3、在action里面創(chuàng)建實(shí)體類對象4、注意:表單輸入項(xiàng)name的屬性值和實(shí)體類屬性名稱要一致。注意:使用模型封裝和屬性封裝時(shí),在一個(gè)action中,

17、獲取表單數(shù)據(jù)可以屬性封裝,也可以模型封裝,但是不能兩個(gè)封裝同時(shí)使用,如果同時(shí)使用,只會執(zhí)行模型封裝。3、表達(dá)式封裝1、作用:可以把表單數(shù)據(jù)封裝到實(shí)體類對象里面。2、步驟:1、在action類里面聲明實(shí)體類2、生成實(shí)體類變量的get和set方法。3、在表單輸入項(xiàng)的name屬性值里面寫表達(dá)式形式的數(shù)據(jù)。3、優(yōu)點(diǎn):可以把數(shù)據(jù)封裝到不同的實(shí)體類對象里面。5、表單數(shù)據(jù)封裝到集合里面1、封裝數(shù)據(jù)到List集合1、操作步驟1、在action中聲明List集合2、生成該集合變量的get和set方法3、在表單輸入項(xiàng)的name屬性里寫表達(dá)式2、封裝數(shù)據(jù)到Map集合1、操作步驟1、在action中聲明Map集合2、

18、生成該集合變量的get和set方法3、在表單輸入項(xiàng)的name屬性里寫表達(dá)式Struts2筆記(三)1、Ognl概述1、定義:Ognl是一種表達(dá)式,這個(gè)表達(dá)式的功能比EL表達(dá)式功能更強(qiáng)大。2、功能:1、在Struts2中可以操作值棧數(shù)據(jù)。2、一般在Struts2中和Struts2標(biāo)簽一起使用操作值棧。3、使用步驟:1、在lib文件夾中加入Ognl的jar包。2、在jsp頁面中引入Struts2標(biāo)簽庫。3、使用標(biāo)簽<s:property>,并給屬性value設(shè)置值,比如求一個(gè)字符串的長度案例。2、什么是值棧1、定義:值棧就是Struts2框架中的一種存儲機(jī)制,類似于域?qū)ο螅梢源嫒≈怠?/p>

19、每個(gè)Action對象里都有一個(gè)值棧區(qū)域。2、Servlet和Action的區(qū)別:Servlet的實(shí)例是在第一次訪問時(shí)創(chuàng)建的,并且只創(chuàng)建一個(gè)實(shí)例,屬于單例對象。Action的實(shí)例是在第一次訪問時(shí)創(chuàng)建的,但是每次訪問就會創(chuàng)建一個(gè)實(shí)例,屬于多例對象。3、獲取值棧步驟:1、獲取ActionContext對象2、調(diào)用ActionContext的靜態(tài)方法getValueStack()4、值棧的內(nèi)部結(jié)構(gòu)1、第一部分 root,結(jié)構(gòu)是list集合,底層繼承自ArrayList集合。2、第二部分 context,結(jié)構(gòu)是Map集合,底層實(shí)現(xiàn)了Map接口。3、Struts2中debug標(biāo)簽的使用1、定義:該標(biāo)簽可以

20、查看值棧的結(jié)構(gòu)和存儲值。2、使用步驟:訪問action,執(zhí)行action的方法有返回值,配置返回值到j(luò)sp頁面,在jsp頁面中使用該標(biāo)簽,在訪問action,在頁面出現(xiàn)一個(gè)debug的超鏈接,然后點(diǎn)擊超鏈接即可。Struts2筆記(四)1、在值棧中存放數(shù)據(jù)1、在值棧中存放數(shù)據(jù)的三種方式1、首先獲取值棧對象,調(diào)用值棧對象的set方法。2、首先獲取值棧對象,調(diào)用值棧對象的push方法。3、在action類中定義一個(gè)成員變量,并生成變量的get方法。注意:一般第三種方式最常用,因?yàn)檫@種方式是在action中存儲值,節(jié)約資源。然后第一種方式次之,第一種方式極少用到。2、在值棧中取出數(shù)據(jù)1、取出字符串2

21、、取出集合3、取出對象3、EL表達(dá)式取數(shù)據(jù)的原理首先去獲取request域的值,如果該域有值,就直接返回,如果沒有值,那么就進(jìn)入值棧中把值取出來,返回給request域?qū)ο蟆?、OGNL的#、%符號的作用1、#號:使用#號獲取context里面的數(shù)據(jù)。使用時(shí)格式是#context的key名稱.域?qū)ο竺Q,如#request.req 。2、%號:可以在Struts2標(biāo)簽中使用OGNL表達(dá)式。5、Struts2攔截器1、概述:攔截器就是Struts2框架中封裝的功能的容器。在Struts2框架中有很多的功能,所有就有很多的攔截器,并不是每次都執(zhí)行所有的攔截器,它只會執(zhí)行一些默認(rèn)的攔截器。2、默認(rèn)攔截器的位置3、攔截器的執(zhí)行時(shí)間在action對象創(chuàng)建之后,action的方法執(zhí)行之前

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論