暑期ssh框架之struts2學習筆記一
經過一個暑期的學習,現在已經基本掌握了ssh框架,現在這裡記錄下學習心得,以便交流需要。這裡的學習心得以傳智部落格的《SSH框架整合實戰教程》為準,部分打亂教材順序。
教材第一章:
一、本篇導讀:
關鍵語句1、:使用攔截器的機制處理使用者請求,使得業務邏輯控制與servrlet API完全脫離開
關鍵語句2、:result標籤,很方便地實現頁面重定向與頁面跳轉
二、執行流程:
上圖是實現完成c/s模式的流程圖,用方框框出的,是涉及的到的相關檔案,下面,將依次講解這些檔案,以及這些檔案中所涉及到的關鍵語句。
在index.jsp檔案中,有如下語句:
<a href="${pageContext.request.contextPath}/helloWorld.action">hello world</a>
當我們點選超連結hello world時,向伺服器傳送的request的action屬性的值是helloWorld.action,這個action首先會經過struts.xml,struts.xml檔案的作用是什麼,可不用深究,總之記住這個檔案必須要,其中的配置也是固定的,接下來,這個action會到struts.xml中,struts.xml中有如下語句:
<action name="helloWorld" class="cn.itcast.action.HelloWorldAction"></action>
根據這個action標籤中的name屬性,對應的實現類是cn.itcast.action.HelloWorldAction,接下來,就輪到這個實現類來發揮作用了,發揮作用的結果是返回一個字串。這個實現類的程式碼如下所示:
packge.cn.itcast.action; import com.opensymphony.xwork2.ActionSupport; public class HelloWorldAction extends ActionSupport{ public String execute throws Exception(){ return "success"; } }
這個servlet的返回值是一個字串,這個字串的值是success,返回的值交給誰呢?交給struts.xml,注意struts.xml檔案中有如下程式碼:
<action><result name="success">/success.jsp</result></action>
這個返回值和struts.xml檔案中的result標籤中的name屬性的值“success”相對照,發現這兩個字串的值是一樣的,那麼就返回success.sp頁面,至此,整個c/s模式完全實現,這就是struts2框架的執行流程。下面,我們將以樹的形式羅列出整個專案的檔案結構,方框為需要我們程式設計的部分,箭頭為資料流向的部分。
福利:教材第一章課後習題解答:
web.xml中配置Struts2核心過濾器的程式碼片段:
<filter>
<filter-name>struts2<filter-name/>
<filter-class>
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
</filter-class>
<filter/>