新聞中心
Struts優(yōu)缺點跟Tomcat、Turbine等諸多Apache項目一樣,是開源軟件,這是它的一大優(yōu)點。使開發(fā)者能更深入的了解其內(nèi)部實現(xiàn)機制。

成都創(chuàng)新互聯(lián)是一家專注于成都網(wǎng)站建設、網(wǎng)站設計與策劃設計,海港網(wǎng)站建設哪家好?成都創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設10多年,網(wǎng)設計領域的專業(yè)建站公司;建站業(yè)務涵蓋:海港等地區(qū)。海港做網(wǎng)站價格咨詢:18982081108
Struts開放源碼框架的創(chuàng)建是為了使開發(fā)者在構建基于Java Servlet和JavaServer Pages(JSP)技術的Web應用時更加容易。Struts框架為開放者提供了一個統(tǒng)一的標準框架,通過使用Struts作為基礎,開發(fā)者能夠更專注于應用程序的商業(yè)邏輯。Struts框架本身是使用Java Servlet和JavaServer Pages技術的一種Model-View-Controller(MVC)實現(xiàn)。 具體來講,
Struts優(yōu)點有:
1. 實現(xiàn)MVC模式,結(jié)構清晰,使開發(fā)者只關注業(yè)務邏輯的實現(xiàn).
2. 有豐富的tag可以用 ,Struts的標記庫(Taglib),如能靈活動用,則能大大提高開發(fā)效率。另外,就目前國內(nèi)的JSP開發(fā)者而言,除了使用JSP自帶的常用標記外,很少開發(fā)自己的標記,或許Struts是一個很好的起點。
3. 頁面導航.頁面導航將是今后的一個發(fā)展方向,事實上,這樣做,使系統(tǒng)的脈絡更加清晰。通過一個配置文件,即可把握整個系統(tǒng)各部分之間的聯(lián)系,這對于后期的維護有著莫大的好處。尤其是當另一批開發(fā)者接手這個項目時,這種優(yōu)勢體現(xiàn)得更加明顯。
4. 提供Exception處理機制 .
5. 數(shù)據(jù)庫鏈接池管理
6. 支持I18N
Struts缺點:
一、 轉(zhuǎn)到展示層時,需要配置forward,每一次轉(zhuǎn)到展示層,相信大多數(shù)都是直接轉(zhuǎn)到jsp,而涉及到轉(zhuǎn)向,需要配置forward,如果有十個展示層的jsp,需要配置十次struts,而且還不包括有時候目錄、文件變更,需要重新修改forward,注意,每次修改配置之后,要求重新部署整個項目,而tomcate這樣的服務器,還必須重新啟動服務器,如果業(yè)務變更復雜頻繁的系統(tǒng),這樣的操作簡單不可想象。現(xiàn)在就是這樣,幾十上百個人同時在線使用我們的系統(tǒng),大家可以想象一下,我的煩惱有多大。
二、 Struts 的Action必需是thread-safe方式,它僅僅允許一個實例去處理所有的請求。所以action用到的所有的資源都必需統(tǒng)一同步,這個就引起了線程安全的問題。
三、 測試不方便. Struts的每個Action都同Web層耦合在一起,這樣它的測試依賴于Web容器,單元測試也很難實現(xiàn)。不過有一個Junit的擴展工具Struts TestCase可以實現(xiàn)它的單元測試。
四、 類型的轉(zhuǎn)換. Struts的FormBean把所有的數(shù)據(jù)都作為String類型,它可以使用工具Commons-Beanutils進行類型轉(zhuǎn)化。但它的轉(zhuǎn)化都是在Class級別,而且轉(zhuǎn)化的類型是不可配置的。類型轉(zhuǎn)化時的錯誤信息返回給用戶也是非常困難的。
五、 對Servlet的依賴性過強. Struts處理Action時必需要依賴ServletRequest 和ServletResponse,所有它擺脫不了Servlet容器。
六、 前端表達式語言方面.Struts集成了JSTL,所以它主要使用JSTL的表達式語言來獲取數(shù)據(jù)。可是JSTL的表達式語言在Collection和索引屬性方面處理顯得很弱。
七、 對Action執(zhí)行的控制困難. Struts創(chuàng)建一個Action,如果想控制它的執(zhí)行順序?qū)浅@щy。甚至你要重新去寫Servlet來實現(xiàn)你的這個功能需求。
八、 對Action 執(zhí)行前和后的處理. Struts處理Action的時候是基于class的hierarchies,很難在action處理前和后進行操作。
九、 對事件支持不夠. 在struts中,實際是一個表單Form對應一個Action類(或DispatchAction),換一句話說:在Struts中實際是一個表單只能對應一個事件,struts這種事件方式稱為application event,application event和component event相比是一種粗粒度的事件。 Struts重要的表單對象ActionForm是一種對象,它代表了一種應用,這個對象中至少包含幾個字段,這些字段是Jsp頁面表單中的input字段,因為一個表單對應一個事件,所以,當我們需要將事件粒度細化到表單中這些字段時,也就是說,一個字段對應一個事件時,單純使用Struts就不太可能,當然通過結(jié)合JavaScript也是可以轉(zhuǎn)彎實現(xiàn)的。
Struts優(yōu)缺點就為大家總結(jié)到這里。
標題名稱:Struts優(yōu)缺點剖析開源是把雙刃劍?
網(wǎng)頁URL:http://www.5511xx.com/article/djescde.html


咨詢
建站咨詢
