Struts2學習筆記(一):struts2開發環境的搭建

來源:互聯網
上載者:User

Struts2是在WebWork2基礎發展而來的。和struts1一樣, Struts2也屬於MVC架構。不過有一點大家需要注意的是:儘管Struts2和Struts1在名字上的差別不是很大,但Struts2和Struts1在代碼編寫風格上幾乎是不一樣的。那麼既然有了Struts1,為何還要推出

Struts2。主要是因為Struts2有以下優點:

1. 在軟體設計上Struts2沒有像struts1那樣跟Servlet API和struts API有著緊密的耦合,Struts2的應用可以不依賴於Servlet API和struts API。 Struts2的這種設計屬於無侵入式設計,而Struts1卻屬於侵入式設計。

2. Struts2提供了攔截器,利用攔截器可以進行AOP編程,實現如許可權攔截等功能。

3. Strut2提供了類型轉換器,我們可以把特殊的請求參數轉換成需要的類型。在Struts1中,如果我們要實現同樣的功能,就必須向Struts1的底層實現BeanUtil註冊類型轉換器才行。

4. Struts2提供支援多種表現層技術,如:JSP、freeMarker、Velocity等

5. Struts2的輸入校正可以對指定方法進行校正,解決了Struts1長久之痛

6. 提供了全域範圍、包範圍和Action範圍的國際化資源檔管理實現 

搭建Struts2環境時,我們一般需要做以下幾個步驟的工作:

找到開發Struts2應用需要使用到的jar檔案.

  • struts2-core-2.x.x.jar :Struts 2架構的核心類庫

  • xwork-core-2.x.x.jar :XWork類庫,Struts 2在其上構建

  • ognl-2.6.x.jar :對象圖導航語言(Object Graph Navigation Language),struts2架構通過其讀寫對象的屬性
  • freemarker-2.3.x.jar :Struts 2的UI標籤的模板使用FreeMarker編寫
  • commons-logging-1.x.x.jar :ASF出品的日誌包,Struts 2架構使用這個日誌包來支援Log4J和JDK 1.4+的日誌記錄。
  • commons-fileupload-1.2.1.jar 檔案上傳組件,2.1.6版本後必須加入此檔案
 

2.  編寫Struts2的設定檔

Struts2預設的設定檔為struts.xml ,該檔案需要存放在WEB-INF/classes下(放在src檔案下即可,部署時自動載入到classes下),該檔案的配置模版如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<!-- structs2配置模板 -->
</struts>

 

3.  在web.xml中加入Struts2 MVC架構啟動配置

在struts1.x中, struts架構是通過Servlet啟動的。在struts2中,struts架構是通過Filter啟動的。他在web.xml中的配置如下: 
    <filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

在StrutsPrepareAndExecuteFilter的init()方法中將會讀取類路徑下預設的設定檔struts.xml完成初始化操作。

注意:struts2讀取到struts.xml的內容後,以javabean形式存放在記憶體中,以後struts2對使用者的每次請求處理將使用記憶體中的資料,而不是每次都讀取struts.xml檔案

 最後部署到tomcat進行測試,成功啟動即搭建成功  

在struts-2.3.1.2中,需要的最小jar包為:

commons-fileupload-1.2.2.jar

commons-io-2.0.1.jar

commons-logging-1.1.1.jar

freemarker-2.3.18.jar

ognl-3.0.4.jar

struts2-core-2.3.1.2.jar

xwork-core-2.3.1.2.jar

commons-lang-2.5.jar

javassist-3.11.0.GA.jar
參考app目錄下的war包中配置

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.