?? 9_structs學習筆記.txt
字號:
2004-11-9 星期二 晴
1. Struts是什么?
答:1) Struts是一個開源框架,用于構建MVC架構Web應用程序;
2) Struts是Jakarta項目的部分, 由Apache軟件基金贊助;
3) 通過使用Struts,你可在程序中清晰地分隔表現層和業務邏輯層;
4) 通過提供廣泛JSP標簽庫,Struts也提高了開發效率。標簽庫解析和驗證用戶輸入、錯誤處理以及國際化支持。
5) 我們將會向您展現如何使用Struts開發工具構建Struts的Web應用程序。
2. Struts資源
答:為了學習更多Struts框架有關知識,請關注Struts官方網站以及用戶向導:
. http://jakarta.apache.org/struts
. http://jakarta.apache.org/struts/userGuide/introduction.html
3. MVC(model-view-controller)架構模式
答:1) MVC架構模式在1980年由Smalltalk-80的圖形用戶界面庫的開發者提出;
2) 從此它在面向對象的用戶界面和應用程序控制工具包中得到了廣泛地應用,例如Struts,以及經過改良去滿足特定平臺需求,例如J2EE。
3) 根據MVC模式,一個軟件組件(一個應用程序、一個模塊等)應該將它商業邏輯和它的表現層分離;
4. MVC的理由
答:1) 對于相同的model你有超過一個view;
2) 假如商業邏輯和它的表現層構建在一塊,增加額外的view會導致相當大的中斷以及增加組件的復雜性;
3) 一個model有二個view的一個好的例子是一個銀行應用程序,它可以通過互聯網以及手機訪問;
4) 改變view的時候,你不希望每次改變model;
5) view依賴于model,它顯示給用戶model的特定方面;
6) 將view和model構建在一塊,每次當你對view進行細小改動的時候,你不得不改動model;
5. MVC模式
答:這種分離可通過將組件分成以下層達到:
. model層,實現商業邏輯;
. view層,實現一個特定客戶端類型的用戶界面;
. 有了這二層,我們可實現商業邏輯并且將它呈現給用戶。但這只解決了問題的一半,我們應該還能和model交互。這種交互的實現層稱為控制層。
6. MVC間的依賴性
答:
|ˉˉˉˉˉ|
| Control |
|__________|
╱╲
╱ ╲
╱ ╲
↙ ↘
|ˉˉˉˉˉ| |ˉˉˉˉˉ|
| View |----->| Model |
|__________| |__________|
7. MVC框架和Struts
答:Struts提供了下面這些組件使用MVC開發應用程序:
. Model:Struts沒有提供model類。這個商業邏輯必須由Web應用程序的開發者以JavaBean或EJB的形式提供;
. View:Struts提供了action form創建form bean, 用于在controller和view間傳輸數據;
此外,Struts提供了自定義JSP標簽庫,輔助開發者用JSP創建交互式的以表單為基礎的應用程序;
應用程序資源文件保留了一些文本常量和錯誤消息,可轉變為其它語言,可用于JSP中。
. Controller:Struts提供了一個action serlvet,接收JSP輸入字段形成action form,然后調用一個action class。action class提供了model的邏輯接口。
8. Struts Web應用程序中的組件
答:1) 一個servlet,繼承自org.apache.struts.action.ActionServlet;
. 主要實現一個映射功能:將一個請求的URI映射至一個action class;
. 在調用action class之前,它接收JSP輸入字段然后形成form bean;
. 如果指定了,action servlet也會請求form bean去驗證數據;
. 它然后調用action class完成請求的功能;
. 假如form bean驗證失敗,控制然后返回給JSP,以便用戶可以改正數據;
. action servlet由一個XML配置文件配置。這個XML配置文件指定了組件的環境和它們之間的關系。
2) 多個JSP頁面,給終端用戶提供界面;
. Struts提供了廣泛的標簽庫使得JSP開發起來容易;
. JSP顯示了action準備好的信息以及用于用戶請求新的信息;
3) 多個action class,繼承自org.apache.struts.action.Action;
. model的接口;
. 當一個action完成執行后,它返回一個action轉發對象。該對象確定用戶界面是否顯示響應。
. action class預備了必須的消息用于顯示響應,通常是作為一個form bean,然后使它對JSP頁面有用。
. 用于傳送消息給action的form bean,也用于傳送響應。但專門的顯示數據的view bean的存在也很普遍。
. 一個action forward包括它的名字、地址(URL)以及一個標記。這個標記指定一個forward或redirect調用是否應該進行。
. 一個action forward的地址通常硬編碼入action servlet的配置文件,但是也可以由action本身動態產生。
4) 多個action form,繼承自org.apache.struts.action.ActionForm。
. action form是一般的帶有set和get方法的javabean;
. 通常每個Web頁面存在一個form bean,但是你也可以使用粗粒度的form bean用于在多個Web頁面間保持輸入內容。
. 假如需要進行數據驗證,直到form bean成功完成驗證,它才會傳遞至action。
. 因此form bean可以作為介于JSP和action中的防火墻,它僅允許有效的數據進入系統。
5) 每種語言一個應用程序資源文件,它包含了一些應用程序文本常量以及錯誤信息,這使得國際化變得容易。
9. Struts的請求時序
答:1) 來自于Web瀏覽器的一個請求到達ActionServlet;
2) 假如處理請求的action有一個相聯系的form bean,Struts創建form bean并且將來自于瀏覽器的輸入數據填充它;
3) 然后調用form bean的驗證方法;
4) 假如驗證失敗,用戶返回至輸入頁面去改正輸入;
5) 假如驗證成功,Struts調用action的execute方法;
6) action接收到來自于form bean的數據并且執行相應的邏輯;
7) Action通常調用session EJB處理商業邏輯;
8) 當商業邏輯處理完,action要么創建一個新的form bean(或其它對應的view bean),要么重用已經存在的。用新的數據填充它然后存儲于請求(或會話)范圍內。
9) 它然后返回一個forward對象給action servlet,該servlet將其轉送至相應的輸出JSP頁面。
10)JSP使用form bean中的數據輸出結果。
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -