半翻譯半整理的一些struts的東東,很淺顯的,歡迎指正
發(fā)表時(shí)間:2024-06-02 來源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]Struts學(xué)習(xí)筆記一、Controller(控制器)Struts中的控制器包括三個(gè)組件:ActionServlet類、Action類、Plugins以及RequestProcesser。1.ActionServlet類:◆ 處理過程:org.apache.struts.action.Action...
Struts學(xué)習(xí)筆記
一、Controller(控制器)
Struts中的控制器包括三個(gè)組件:ActionServlet類、Action類、Plugins以及RequestProcesser。
1.ActionServlet類:
◆ 處理過程:
org.apache.struts.action.ActionServlet類是Struts應(yīng)用程序的核心。它是處理客戶端請求和決定哪一個(gè)Action類來處理每個(gè)接收到的請求的最主要的控制器組件。它擔(dān)當(dāng)著Action工廠類的角色去創(chuàng)建一個(gè)指定的Action類。事實(shí)上,它也就是繼承于HttpServlet類的一個(gè)Servlet類。它實(shí)現(xiàn)了HttpServlet生命周期中的所有方法,如:init(),doGet(),doPost(),destroy()。當(dāng)ActionServlet接收到請求之后,它的執(zhí)行步驟如下:
① doGet()或者doPost()方法接收請求,然后調(diào)用ActionServlet類的process()方法。Process()方法會返回一個(gè)當(dāng)前的RequestProcessor類的實(shí)例對象。然后調(diào)用RequestProcessor類的process()方法。而實(shí)際為當(dāng)前請求提供處理服務(wù)的就是這個(gè)process()方法。所有的一切都是在這里完成的。
② RequestProcessor.process()方法會從struts-config.xml文件中將<form-bean>的name屬性與<action>中的name屬性對應(yīng)起來,從而找到相關(guān)的ActionForm類的類名稱
③ 到實(shí)例池中找一個(gè)ActionForm類的實(shí)例。將它的數(shù)據(jù)成員與請求的值對應(yīng)起來。
④ 調(diào)用ActionForm類的validate()方法,檢查提交數(shù)據(jù)的有效性。
⑤ 從<action>中接收到Action類的類名稱。創(chuàng)建一個(gè)Action類,然后調(diào)用Action類的execute()方法。當(dāng)Action類返回一個(gè)ActionForward類的實(shí)例之后,控制權(quán)再次交給ActionServlet。
⑥ ActionServlet則forward到指定的target進(jìn)行處理。至此ActionServlet對request的處理完畢。
◆ 擴(kuò)展ActionServlet類:
如果想寫自己的ActionServlet類,則一定要繼承自org.apache.struts.action.ActionServlet類,并且按下面的四個(gè)步驟進(jìn)行:
① 創(chuàng)建一個(gè)繼承自org.apache.struts.action.ActionServlet類的類。
② 實(shí)現(xiàn)自定義的商業(yè)邏輯方法。
③ 編譯這個(gè)類,并且將它放到Web 應(yīng)用程序的類路徑中
④ 修改web.xml文件中的<servlet>元素中的相關(guān)設(shè)置。
◆ 配置ActionServlet:見“web.xml配置文件”一文。
2.Action類:
這是Struts控制器的第二個(gè)組件,Action類在每一個(gè)應(yīng)用系統(tǒng)中都必須被擴(kuò)展。下面看一看Action中重要的方法:
① execute()方法:這個(gè)方法是必須要重寫的方法。Action類中實(shí)現(xiàn)了兩個(gè)execute()方法,一個(gè)接受Http請求,一個(gè)不是。
◆擴(kuò)展Action類
① 創(chuàng)建一個(gè)繼承于Action的類
② 實(shí)現(xiàn)execute()方法和自己的商業(yè)邏輯
③ 在struts-config.xml文件中配置<Action-mappings />元素
在struts-config.xml中配置Action類的參數(shù),請參考“struts-config配置文件講解”。