馬可波羅的夢鄉

          BlogJava 首頁 新隨筆 聯系 聚合 管理
            4 Posts :: 50 Stories :: 2 Comments :: 0 Trackbacks
          1、J2EE平臺的三大核心技術是 Servlet、JSP和EJB
          2、Web程序日益復雜,單純某種技術無法做到快速開發、快速驗證和快速部署的最佳境界。人們開始嘗試著將已有的Web技術綜合起來,形成完整的開發框架或應用模型。
          3、控制器調用視圖來顯示模型的數據。(之前會把請求轉發給模型,讓模型來處理業務,并返回數據)
          4、模型調用視圖,顯示模型數據的變更。
          5、控制器提高了應用程序的靈活性和可配置性。
          6、將MVC運用到應用程序中,會帶來額外的工作量,增加應用的復雜性,所以MVC不適合小型應用程序
          7、struts-config.xml用于建立Controller和Model之間的關系
          8、Velocity Template,使UI組件可重用
          9、struts2是基于webwork框架的,它比strus1.x更簡單,更靈活。
          10、攔截器是Struts2的核心內容之一。
          11、struts.xml是Struts 2框架的核心配置文件
          12、Struts2中的Action只是一個普通Java類(POJO),這是同Struts 1.X的重要區別之一。
          13、Struts2的優點之一就是提供了標簽庫。使用標簽庫,可以使代碼變得簡潔、可讀性大大提高,并給開發人員帶來了巨大的便利。
          14、Struts2不再支持內建的IOC容器,而是全面使用Spring的IoC容器

          15、FilterDispatcher是Struts的核心控制器可以和 bpm聯合嗎?
          FilterDispatcher詢問ActionMapper是否需要調用某個Action來處理請求,如果需要,FilterDispatcher會把請求交給ActionProxy,他會通過ConfigurationManager詢問框架的配置文件,找到需要調用的Action。在調用前,ActionInvocation會加載Action相關的所有攔截器。
          最后,ActionInvocation根據struts.xml配置找到對應的返回結果result。

          16、Struts2框架的目的就是使用Action來調用業務邏輯模塊Action中不實現任何業務邏輯,只是負責組織調度業務邏輯組件
          (業務控制器Action一般情況下不是直接創建業務邏輯組件實例,而是通過使用工廠模式或從Spring容器中獲得業務邏輯組件實例,這樣可以提高系統的性能)。

          17、Struts1只能支持JSP作為視圖資源,Struts2支持其他視圖技術,如FreeMarker,Velocity等
          每個result有一個type屬性,指定了對應的視圖資源類型如果不寫,會使用默認的type類型,即JSP類型的視圖資源。
          18、Struts2的配置文件時整個框架的聯系紐帶,也是降低各類組件耦合程度的一種手段

          19、Struts2最大的特點之一,是實現了Action和Servlet API的分離。在Struts1中要復雜很多。
          pojo的exec()不用任何參數,只是返回一個字符類型的值

          20、ValueStack和OGNL是Struts2引入的新東西,Webwork中原來就有,但是Strus1中是沒有的。
          值棧ValueStack和OGNL的一個簡單并且強大特性在于,他們不屬于Strus2框架中的任何一個組件,它是獨立的,與框架分離
          無論攔截器還是result,都可以通過OGNL來訪問值棧。
          值棧存在于局部線程的ActionContext中
          Struts2框架在處理每一個用戶請求的時候,都建立一個單獨的線程進行處理,值棧也是伴隨著局部線程而存在的。在線程存在過程中,可以隨意訪問值棧,這就保證了值棧的安全性

          21、FreeMarker頁面不能直接通過URL訪問,這樣訪問看到的只能是 freemarker頁面源碼。。。
          一定要通過action進行訪問。只有通過action才能把 模板和數據模型結合起來,并返還給用戶。

          22、Struts配置DTD定義。   (文檔格式定義)
          <!ELEMENT struts (package|include|bean|constant)*>  // 表示package, include, bean和constant并沒有順序要求。
          <!ELEMENT package (result-types?, interceptors?, default-interceptor-ref?, default-action-ref?, default-class-ref?, global-results?, global-exception-mappings?, action*)>  // 這里使用的是逗號,實際上是有順序要求的?如default-action-ref必須要定義在action之前。。。

          /////////////////////////////////////////////////////////////////////////////////////////////
          1、form里,原來提交的action是指向一個JSP頁面的現在是指向某個的Struts Action可以根據輸出,有選擇地指向多個JSP頁面,或者也可以采用其他視圖技術
          2、ActionContext是Action運行的上下文環境(通過繼承ActionSupport,可以直接獲得該方法)。可以通過靜態方法getContext獲得 Action的上下文。之后可以通過getApplication()和getSession()對Application和Session的參數進行訪問。
          posted on 2009-10-03 20:24 夢回唐朝 閱讀(156) 評論(0)  編輯  收藏 所屬分類: Struts
          主站蜘蛛池模板: 龙海市| 哈巴河县| 丰县| 东至县| 连城县| 五指山市| 白山市| 彭州市| 临夏县| 策勒县| 延川县| 浪卡子县| 离岛区| 嫩江县| 二连浩特市| 延津县| 南召县| 玉环县| 栾城县| 绥德县| 犍为县| 明水县| 门源| 恩平市| 萍乡市| 旬阳县| 钟祥市| 华亭县| 泉州市| 贵阳市| 讷河市| 武陟县| 峨眉山市| 扶余县| 孝昌县| 兴宁市| 钦州市| 得荣县| 惠州市| 长顺县| 广州市|