struts采用JavaServlet/JSP技術,實現了基於Java EEWeb應用的MVC設計模式的應用框架


今天我用Ecipse搭建Struts框架,並且使用Struts框架編寫一個最簡單的例子,相信讀者能夠很容易的明白。

Struts是當今Java比較流行的三大框架之一,三大框架是Struts,spring,hibernate。Struts框架也包括Struts1和Struts2,由於兩個版本相差比較大,Struts1已經被淘汰,現在企業基本上全部都用Struts2,所以我當然也是用Struts2。

 

好,下面我詳細的說明搭建過程

 

 

首先啟動Eclipse J2EE版本(官方最近發布的版本),創建一個web項目Struts2
圖片

 

 

引入我們下載的Struts2的目錄下的Jar包,

具體目錄如下

圖片

 

 

將這些Jar包導入到項目的lib目錄下
圖片

 

 

然后打開上層目錄的web.xml配置文件
圖片

 

 

將filter和filter-mapping兩個標簽對的內容copy到Struts2項目的web.xml
圖片

 

 

然后,想下圖(據圖根路徑看你Struts的位置)指定路徑的struts.xml考到項目的src目錄下
圖片

 

 

 

如圖
圖片

 

 

 

打開strut.xml,將<struts>標簽對中的全部內容刪除或者注釋,建議注釋

然后從注釋的部分copy一下內容到struts中

內容

<constant name="struts.devMode" value="false" /> 
 <package name="default" namespace="/" extends="struts-default">
        <default-action-ref name="index" />
        <action name="index">
            <result type="redirectAction">
                <param name="actionName">HelloWorld</param>
                <param name="namespace">/example</param>
            </result>
        </action>
    </package>

 

 

然后將第一句<constant name="struts.devMode" value="false" /> 
改為<constant name="struts.devMode" value="true" />

這句話主要是說,當我們項目的action的改變時,可以立刻響應改變,不需要重啟服務器

 

結果為
圖片

 

到此Strut2的配置已經完成,可以寫例子了

 

 

 

 

 

我這里就寫一個最簡單的例子在網頁上 打印 hello Struts2!

首先在項目的webContent目錄下創建一個JSP文件index.jsp

並更改代碼如下
圖片

 

 

 

然后將項目中的struts.xml的代碼更改為
圖片

這段代碼我等下再給大家介紹

 

 

ok,啟動服務器,打開瀏覽器,輸入網址http://localhost/Struts2/hello

結果為
圖片

 

 

實驗成功!!!

 

 

 

說明:

大家看到了,現在我們訪問的地址是http://localhost/Struts2/hello,並不是直接訪問http://localhost/Struts2/index.jsp

我把流程畫一下
圖片

 

當客戶端訪問時,服務器通過過濾器filter,然后根據action得到客戶端訪問的jsp頁面,然后將jsp頁面反饋給客戶端。

無形當中把jsp和客戶端分開,這樣做有什么好處呢?直接訪問jsp不更加簡單嗎,干么弄得這么復雜?

 

 

這根設計模式是一樣的,復雜的東西背后帶來的好處就是可拓展

大家不妨想想,如果是直接訪問jsp,如果我們需要更改jsp中的內容(這是經常需要更改的部分),我個人認為除了暫時停止服務以外,然后更改代碼,否則沒有什么辦法!但是這是很要命的!

 

但是我們如果引入的action這個中間層,因為客戶端並沒有和jsp有什么直接聯系,所以只要action改變,即可立刻更換jsp,或者action不變,直接更換jsp文件,即可,不需要付出任何代價。

 

這就是struts的核心思想,與MVC思想非常類似。

 

好,我的發表到此結束。相信讀者能夠很輕易的體會這個思想。


注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2021 ITdaan.com