l Struts框架的起源前端
SEO(Search Engine Optimization),漢譯爲搜索引擎優化。搜索引擎優化是一種利用搜索引擎的搜索規則來提升目的網站在有關搜索引擎內的排名的方式。SEO目的理解是:爲網站提供生態式的自我營銷解決方案,讓網站在行業內佔據領先地位,從而得到品牌收益。SEO包含站外SEO和站內SEO兩方面。java
。。。web
因此框架的開發人員在2007年對框架進行了版本的升級。可是這個升級不是簡單的代碼改善,而是從本質上改變了實現的方式,而且參考了其餘優秀的框架產品(WebWork),因此產生了struts2的框架,以前的框架稱之爲struts1框架。編程
Struts2框架改善的地方設計模式
由於struts1框架存在固有的一些問題,因此這裏咱們只介紹Struts2框架。Struts1框架再也不作介紹。tomcat
l Struts2框架是一個輕量級的MVC流程框架安全
l Struts2框架的文件結構服務器
l Struts2框架的環境搭建架構
l struts2框架的第一個例子app
l struts2框架的源碼解讀
整體來講設計模式分爲三大類:
建立型模式,共五種:工廠方法模式、抽象工廠模式、單例模式、建造者模式、原型模式。
結構型模式,共七種:適配器模式、裝飾器模式、代理模式、外觀模式、橋接模式、組合模式、享元模式。
行爲型模式,共十一種:策略模式、模板方法模式、觀察者模式、迭代子模式、責任鏈模式、命令模式、備忘錄模式、狀態模式、訪問者模式、中介者模式、解釋器模式。
l Struts2流程圖
l Struts2的應用
1) Action默認執行的方法名稱爲execute
u 繼承ActinSupport類(推薦)
u 實現Action接口
2) 擴展名
u 默認狀況下的擴展名有2個(action, 空字符串)
u 修改默認的擴展名
l struts.xml文件中增長常量標籤(推薦)
l struts.properties資源配置文件
l 過濾器初始化參數
3) 字符編碼
u 默認的字符編碼 UTF-8
u 框架核心是過濾器,因此能夠直接設定字符編碼。
u 只能解決post的亂碼問題。
4) 從新加載配置文件
u 默認狀況下,修改配置文件,必須從新啓動服務器才能夠起做用。影響開發效率
u 設定常量,讓程序運行時就能夠從新加載配置文件,能夠提升開發效率
u 開發模式
u 從新加載配置文件的設置以及開發模式的設置只能應用在開發階段,在生產環境中必定不能設置爲true
5) 命名空間
u 相似於java中的包
u 應用於訪問action的路徑
u 命名空間的訪問規則。
6) Action建立
u 框架經過配置文件中的class屬性反射建立對象。
u 多例建立,不會出現線程安全問題。
7) 動態方法調用
u 在請求路徑中,將方法名和action的訪問路徑使用感嘆號鏈接起來。
u 在配置文件中增長method屬性(推薦)
u 默認的方法名就是execute
u 方法名也能夠經過通配符進行設定。
8) 數據的流轉
u OGNL和ValueStack
u 數據的展現
l 使用El表達式能夠直接訪問action的屬性。
u 數據的存儲
l 屬性驅動模式
l 模型驅動模式
l 域驅動模式
u 數據的傳播
l 訪問存儲對象(Map)
l 訪問真正的HTTP對象
9) 文件上傳
u 將文件的內容放置在請求體中傳遞給服務器
u 框架支持3中上傳組件(cos,pell),默認爲commons-fileupload
u 框架屏蔽了組件的使用。對於開發人員來說,只須要操做文件流就能夠了。
10) 國際化
u 資源(多語種)文件 – 起名規則
u 國際化的應用的場景。
11) 頁面跳轉
u 默認使用轉發方式(dispatcher)跳轉
u Action轉發 : chain
u 重定向 :redirect
u Action重定向 : redirectAction
12) 文件下載
u 是以流的方式完成頁面的跳轉。
u 須要注意配置文件和類之間的關聯。
13) 模板視圖技術
u Freemarker
u JSP
14) 攔截器
u 默認有18個攔截器
u 自定義攔截器增長後,框架再也不提供默認攔截器
u 攔截器的聲明順序。
u 攔截器模擬過濾器的實現機制
15) 異常處理
u 統一異常處理
u 全局異常映射
u 全局結果映射
16) 團隊的支持
u 配置文件能夠劃分多個子配置文件
u 劃分的規則是根據功能模塊進行劃分
u 從主配置文件包含子配置文件
17) 對象工廠
u 框架的核心對象都是由對象工廠建立出來。
u 可使用自定義的對象工廠覆蓋框架的對象工廠。
18) 註解零配置。
u 執行框架流程,不須要增長配置文件
u 使用JDK1.5版本以後的新特性,註解功能
u 不推薦使用,違背OCP開發原則。
l 在 Struts2 中,模型-視圖-控制器模式經過五個核心組件來實現 :
19) Action
20) 攔截器
21) 值棧/OGNL
22) 結果類型
23) 結果/視圖技術
l Struts2框架MVC 架構圖
l Struts2的總結
24) Struts2框架的優勢
u 輕量級的MVC的流程框架
l 統一管理頁面流轉
l 簡化了表單向控制器的賦值
l 簡化上傳操做
l 規範了團隊開發
l 體現了獨立服務概念(IOC)
u 增長攔截器的處理機制,能夠很容易進行功能的擴展。遵循AOP編程模式
u 提供了多種視圖展示技術。
u 線程安全。
u 測試起來更加的容易。
u 擁有由積極活躍的開發人員與用戶組成的成熟社區
25) Struts2框架的缺點
u 多例建立對象,性能降低(內存消耗大),執行效率低於servlet,因此在使用時會有侷限性
u Action比較臃腫,難於維護
u 底層實現方式很是複雜,致使學習成本增長(時間,難度)
u 因爲設計的緣由會致使安全隱患。
u http://www.egov.com/user/login!getUsercode.action?usercode=success
u http://www.egov.com/user/login!getUsercode.action?usercode=success&usertype=/WEB-INF/web.xml
l Struts2的競爭對手
26) SpringMVC
27) JSF
28) WebWork