框架學習:struts1框架的結構和分析
在上一篇的內容裡,簡單說了說框架的學習,主要講解了什麼是框架,框架的一些相關問題,還有就是如何學習框架。那麼這篇部落格介紹一些常見的框架的結構和分析。
我們所學習的技術框架有很多,例如struts1、struts2、JSF、Spring、SpringMVC、Hibernate、ibatis····在上篇部落格我說了我們可能在開發的路途上會要學習這些框架,我也給出了我對框架學習的幾點:
我們首先要看一下這個框架屬於開發結構中的那一層。因為我們的開發都是要用分層的思想來做的,所以我們第一個就要看看我們開發分層中,各個層次之間有哪些框架。
我們從圖上看到了那些框架屬於哪一層的(這裡還有很多框架沒有涉及到)。之後我們來看一些常用的框架(這個常用相對於個人而言,我這裡所說的常用針對我自己來說,如果這裡我沒有介紹全的話,大家可以到相關的框架官網去查閱一下資料自主學習)。
下面我就簡單的介紹一些我經常使用的框架的結構和一些分析:
Struts框架(分為struts1和struts2):
一、Struts框架結構圖:
優點:
1. Struts框架是一個基於mvc的框架,所以它繼承了所有mvc的優點,例如:複用性好,團隊開發分工明確,結構層次分明等
2. 給程式開發者在servlet層上節約了大量的開發時間,應用程式開發者不再去觸及大量的servlet的編寫,僅僅變換為配置檔案。
二、Struts1框架
1.框架的結構圖:
2. Struts1框架有五個常用物件:actionservlet、actionmapping、actionform、action、actionforward
a) Actionservlet是核心控制,URL 地址對映、ActionForm的匹配、 Action 的執行都需要這個類來進行導航
b) Actionmapping:它們可將請求URI對映到Action類,並且將Action類與ActionFormbean相關聯
c) Actionform:收集表單資料
d) Action: 完成所需的業務邏輯,確定要跳轉的頁面
e) Actionforward:用來封裝轉發路徑的
3. Struts1框架的執行流程:
1) 檢索和使用者匹配的ActionMapping例項,如果不存在,就返回請求路徑無效的錯誤資訊
2)如果ActionForm例項不存在,就建立一個ActionForm的物件,把客戶提交的表單資料封裝到ActionForm物件中。
3)根據配置資訊決定是否要進行表單驗證,如果需要,就呼叫ActionForm的validate()方法
4)如果validate()方法放回null,或者並不包含ActionMessage的ActionError物件,就表示驗證成功
5) ActionServlet根據ActionMapping所包含的對映資訊決定將請求轉發給那個action,如果相應的action例項不存在,就先建立這個action物件,然後再呼叫這個action的excute()方法
6)action的execute()方法返回一個ActionForword物件,ActionServlet會把客戶請求轉發給ActionForword物件所指向的JSP元件
7)ActionForword物件指向JSP元件生成動態網頁返回給客戶
4.優點:和struts框架的優點相同
5.缺點:
1) 表現層技術單一:僅能用jsp
2) 與servletAPI耦合性高,難於測試(httpservletrequest、httpservletresponse)
3) 嚴重依賴於ServletAPI(繼承action,繼承actionform),與struts1框架耦合性太高
這篇部落格就寫到這裡,如果再寫篇幅可能會過長,對讀者的閱讀造成負面影響,所以我會在下面的部落格中陸續介紹我經常使用的框架,當然我也會在這些同層之間的框架的分析中加入各個框架的區別,當然在適當的地方會畫一些圖片來表示他們之間的知識關聯性,希望讀者能夠我一些建議和意見。
轉載:http://blog.csdn.net/lfsf802/article/details/7877208http://blog.csdn.net/lfsf802/article/details/7877208
相關文章
- 框架學習:hibernate框架的結構和分析框架
- 框架學習:webWork框架和struts2框架的結構和分析框架Web
- 全面學習robotframework框架二:整體理解框架結構Framework框架
- Dubbo框架學習總結框架
- rose框架學習總結ROS框架
- 第0篇:學習資料結構和演算法的框架思維資料結構演算法框架
- 如何學習或分析別人的框架?框架
- GoWeb框架Gin學習總結GoWeb框架
- Java Executor 框架學習總結Java框架
- 駁 《駁 《駁 《駁 《停止學習框架》》》》、《駁 《駁 《停止學習框架》》》、《駁 《停止學習框架》》、《停止學習框架》框架
- 輕量級 Web 框架 Gin 結構分析Web框架
- ffmpeg框架結構框架
- 螞蟻金服RPC框架結構分析RPC框架
- 深度學習學習框架深度學習框架
- Qt Creator 原始碼學習筆記02,認識框架結構QT原始碼筆記框架
- OS 學習框架框架
- 停止學習框架框架
- Koa框架學習框架
- Httprunner框架學習HTTP框架
- ThinkPhP 框架學習PHP框架
- 前端學習框架前端框架
- Play框架學習框架
- 如何學習和利用深度學習演算法框架深度學習演算法框架
- 別學框架,學架構框架架構
- 聯邦學習開源框架FATE架構聯邦學習框架架構
- GoWeb框架Gin學習總結proto檔案GoWeb框架
- 【struts1】--Servlet講解MVC框架基本原理ServletMVC框架
- 機器學習和深度學習的最佳框架大比拼機器學習深度學習框架
- 深度學習中tensorflow框架的學習深度學習框架
- 淺談 Fresco 框架結構框架
- ecos框架目錄結構框架
- 集合框架類結構圖框架
- 駁 《停止學習框架》框架
- Java集合框架學習Java框架
- Hugo-框架學習Go框架
- Hibernate框架學習框架
- PySpider框架學習IDE框架
- 日誌框架學習框架