為了不侵犯別人的版權(quán),因此我就不提供下載的文件了,大家可以直接去對方網(wǎng)站下載,這本書寫得不錯,值得推薦。大家可以自己去網(wǎng)上找找看。
http://www.caterpillar.onlyfun.net/Gossip/index.html
1. Struts核心
1.1. 什么是Struts?
1.2. Struts基本運(yùn)作流程
Controller: org.apache.struts.action.ActionServlet/ javax.servlet.http.HttpServlet
?理想收客戶不會直接請求資源或相關(guān)JSP頁面,所有的客戶請求都必須傳送到控制器,由控制器決定轉(zhuǎn)發(fā)給哪個對象處理、哪個頁面回應(yīng)。
View: 靜態(tài)網(wǎng)頁、JSP網(wǎng)頁、Struts自定義標(biāo)簽。
1.5. ActionMapping: struts-config.xml的<action-mappings>標(biāo)簽用來描述一組ActionMapping對象。客戶請求至ActionServlet時,ActionSerlvet查看相應(yīng)的ActionMapping,ActionMapping回復(fù)應(yīng)該使用哪個Action對象,ActionServlet再將控制轉(zhuǎn)移至Action對象。
1.6. Action: 調(diào)用execute()。通常工作包括:驗(yàn)證使用者進(jìn)程狀態(tài);進(jìn)一步驗(yàn)證表單對象的信息;更新應(yīng)用程序中對象的狀態(tài);處理客戶端的請求;返回ActionForward給ActionServlet。
1.7. ActionForm: 是表單的對象化,就是一個JavaBean。表單項(xiàng)目的對應(yīng);數(shù)據(jù)緩存;數(shù)據(jù)驗(yàn)證;屬性轉(zhuǎn)換;程序安全控制。
1.8. ActionError或ActionMessage: 表單的validate()。表示驗(yàn)證不通過的數(shù)據(jù),會在JSP頁面中進(jìn)行表示。
1.9. DynaActionForm: 避免為每個表單寫代碼,在XML中定義,由系統(tǒng)自動生成。但是會造成struts-config.xml過長,系統(tǒng)性能下降。
1.10. Map-backed ActionForm: 由程序代碼生成的表單內(nèi)容。(這個沒搞懂用途)
1.11. 協(xié)同開發(fā):可以拆分struts-config.xml文件為多個,從而協(xié)同開發(fā)時不會沖突。
1.12. 異常處理:使用Struts默認(rèn)的異常處理;使用自定義全局異常處理;為每個Action提供用戶自定義異常處理。
1.13. 從ActionServlet到RequestProcessor:可以跟蹤或者自定義Controller。
1.14. ForwardAction、IncludeAction、SwitchAction:(這個沒搞懂用途)
1.15. 使用DispatchAction類:可以為Action進(jìn)行函數(shù)級別的定義,減少了Action的數(shù)量。
1.16. 使用LookupAction類:與DispatchAction一樣可以用參數(shù)定義Action進(jìn)行函數(shù)級別的定義,還增加了通過value查詢對應(yīng)的函數(shù)。(y這個地方還需要再詳細(xì)描述)
1.17. PlugIn接口:用來擴(kuò)展ActionServlet功能,使初始化函數(shù)不用在代碼中固定,只需要在struts-config.xml中定義就可以,Tiles與Validator就是這樣擴(kuò)充的。
2. Struts Tag
2.1 Struts Html Tag快速參考:<html:html/>, <html:base/>, <html:link/>, <html:img/>, <html:errors/>, <html:messages/>, <html:button/>, <html:form/>, <html:submit/>, <html:reset/>, <html:cancel/>, <html:text/>, <html:password/>, <html:hidden/>, <html:textarea/>, <html:radio/>, <html:checkbox/>, <html:multibox/>, <html:select/>, <html:option/>, <html:image/>
2.2. Strtus Bean Tag快速參考:<bean:cookie/>、<bean:header/>、<bean:parameter/>, <bean:page/>, <bean:define/>, <bean:include/>, <bean:message/> <bean:resource/>, <bean:write/>, <bean:struts/>
2.3. Struts Logic Tag快速參考: <logic:equal/>、<logic:notEqual/> <logic:greatEqual/>、<logic:greatThan/> <logic:lessEqual/>、<logic:lessThan/> <logic:match/>、<logic:notMatch/> <logic:present/>、<logic:notPresent/>
3. Validator整合
3.1. Validator簡介:減少validator()函數(shù)的撰寫,以及代碼綁定。
需要commons-validator.jar和jakarta-oro.jar兩個類庫。
以plug-in的方式擴(kuò)展Struts功能,因此必須在struts-config.xml中定義。
3.2. 客戶端驗(yàn)證
3.3. 服務(wù)器驗(yàn)證
3.4. 配置文件管理
3.5. 內(nèi)建驗(yàn)證器
3.6. 自定義驗(yàn)證器
4. Tiles整合
4.1. Tiles簡介:是Template Engine,可以使網(wǎng)頁布局(Layout)標(biāo)簽與內(nèi)容分離,提供版面控制機(jī)制。
需要commons-beanutils.jar、commons-logging.jar、commons-collections.jar、commons-digester.jar、struts.jar四個類庫。
以plug-in的方式擴(kuò)展Struts功能,因此必須在struts-config.xml中定義。
必須在web.xml中定義標(biāo)簽庫。
5. 檔案上傳
學(xué)習(xí)重點(diǎn):
struts-config.xml
DTO(Data Transfer Object)
DAO(Data Access Object)