1. 程式人生 > >暑期ssh框架之struts2學習筆記一

暑期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/>