1、 創建一個webproject工程
2、 導入jar包
3、 在web.xml文件中編寫核心過濾器
4、 寫一個action(當struts中寫了映射地址時才用寫)
5、將struts.xml文件放入類路徑(WEB-INF\classes)下:(可以從struts2發型包\apps\struts-blank.war中拷貝)
6、把應用部署到Tomcat中,啟動Tomcat,如果沒有報錯,說明搭建成功
在web應用啟動時就會加載初始化ActionServlet,ActionServlet從
struts-config.xml文件中讀取配置信息,把它們存放到各種配置對象
當ActionServlet接收到一個客戶請求時,將執行如下流程.
-(1)檢索和用戶請求匹配的ActionMapping實例,如果不存在,就返回請求路徑無效信息;
-(2)如果ActionForm實例不存在,就創建一個ActionForm對象,把客戶提交的表單數據保存到ActionForm對象中;
-(3)根據配置信息決定是否需要表單驗證.如果需要驗證,就調用ActionForm的validate()方法;
-(4)如果ActionForm的validate()方法返回null或返回一個不包含ActionMessage的ActuibErrors對象, 就表示表單驗證成功;
-(5)ActionServlet根據ActionMapping所包含的映射信息決定將請求轉發給哪個Action,如果相應的 Action實例不存在,就先創建這個實例,然後調用Action的execute()方法;
-(6)Action的execute()方法返回一個ActionForward對象,ActionServlet在把客戶請求轉發給ActionForward對象指向的JSP組件;
-(7)ActionForward對象指向JSP組件生成動態網頁,返回給客戶;
1、 在web.xml文件中需要配置很多行代碼,維護起來很不方便,不利於團隊合作
2、一個servlet的入口只有一個doPost或者doGet方法,如果在servlet中寫很多個方法,代碼結構會顯得非常混亂。
3、servlet類與servlet容器高度耦合,每個方法中都有兩個參數request,response。如果服務器不啟動,這兩個參數沒有辦法初始化。
4、如果在servlet的一個方法中有很多功能,會導致該方法相當復雜,不利於維護。
5、如果在一個servlet類中有很多方法,在浏覽器中輸入訪問的url寫起來也會相當麻煩
6、在servlet中如果獲取頁面上表單中的數據,那麼在方法中會寫很多行。
而struts恰恰幫我們解決了這系列的問題,基於Struts開發的應用由3類組件構成:控制器組件(ActionServlet/RequestProcessor/Action/ActionMapping/ActionForward)、模型組件、視圖組件。
1、利用struts提供的taglib可以節約開發時間;2、維護擴展方便,通過一個配置文件即可把握整個系統各部分之間的聯系,這對於後期的維護有著莫大的好處。c、表現與邏輯分離
d、表單驗證解決了請求數據的驗證問題,增強了系統健壯性。
e、便於團隊開發
struts的缺點:大量使用標簽,對於初學者難度大,ActionForms使用無法進行單元測試
Struts提供了5個標簽庫,即HTML、Bean、Logic、Template和Logic
HTML 標簽 用來創建能夠和Struts 框架和其他相應的HTML 標簽交互的HTML 輸入表單
Bean 標簽 在訪問JavaBeans 及其屬性,以及定義一個新的bean時使用
Logic 標簽 管理條件產生的輸出和對象集產生的循環
Template 標簽 隨著Tiles框架包的出現,此標記已開始減少使用
Titles框架為創建web頁面提供了一種模板機制,能將頁面的內容和布局分離。
Nested標簽 增強對其他的Struts 標簽的嵌套使用的能力
一包含一個controller servlet,能將用戶的請求發送到相應的Action對象。二JSP自由tag庫,並且在controller servlet中提供關聯支持,幫助開發員創建交互式表單應用。三提供了一系列實用對象:XML處理、通過Java reflection APIs自動處理JavaBeans屬性、國際化的提示和消息。
1) 實現各種驗證規則的Java類
2) 配置文件
3) 資源文件
4) JSP自定義標簽
Validator組件可以很好地解決用戶輸入數據的驗證問題,但它並不是一個獨立運行的組件,它可以被
嵌入到目前大部分的Web應用開發框架中。Validator組件的驗證方式有多種,既可以通過JavaScript腳本實現用戶輸入數據的頁面驗證,也可以實現在後台處理程序中的Java驗證ActionForm屬於一種數據傳輸對象,聯系了前台頁面與後台的Action方法,實現了前後台的數據轉換和傳遞。它的作用有:
1、 在顯示頁面的時候用於完成頁面中各種控件的初始化工作。
2、 在用戶提交請求的時候,ActionForm又代表了用戶所提交的數據,供Action以及後續的業務處理方法使用
3、 可以對用戶提交數據的合法性進行驗證
待續……