Struts2(一) 學習興趣、框架簡介、框架優缺點

u013457570發表於2016-12-20

         首先學習這個框架可能是因為自己太自私吧,因為我在智聯網站上研究過網際網路公司的招聘,只要是涉及到後臺開發的都需要這麼框架,在說之前雖然對這框架有過了解,但是沒有用到實際的專案中去,現在做的專案使用到的是SpringMVC就可以搞定目前的需求了。最近在想如果現在自己不研究點別的框架或者是技術,萬一以後跳槽了拿什麼資本去跟面試官吹牛呢,想到這個自己也沒有什麼藉口了,來吧;幹撒。

        學習一門新的技術,無非就是自己去學習和思考,當然學習總要有爭取的方向和動力。毫無疑問我選擇了以為在開發者比較牛的老師--馬士兵先生,選擇這位先生主要是因為他的威望很高,同事他也是全國最有名的大學畢業的,有從事計算機開發和傳道授業多年,精髓所在,最重要的一點就是他能帶我走起Struts2世界之門,師傅領進門、修行看個人,加油吧 。


一、Struts2 簡介

        Struts2是一個基於MVC設計模式的Web應用框架,它本質上相當於一個servlet,在MVC設計模式中,Struts2作為控制器(Controller)來建立模型與檢視的資料互動。Struts 2是Struts的下一代產品,是在 struts 1和WebWork的技術基礎上進行了合併的全新的Struts 2框架。其全新的Struts 2的體系結構與Struts 1的體系結構差別巨大。Struts 2以WebWork為核心,採用攔截器的機制來處理使用者的請求,這樣的設計也使得業務邏輯控制器能夠與ServletAPI完全脫離開,所以Struts 2可以理解為WebWork的更新產品。雖然從Struts 1到Struts 2有著太大的變化,但是相對於WebWork,Struts 2的變化很小。


二、優缺點介紹

Struts2框架以前用過一陣子,最近一直在用SpringMVC,今天突然想結合自己以前的一點經驗總結一下Struts2的優缺點,參考部分網友的帖子結合自己的想法,總結如下:

優點:

        (1)  實現了MVC模式,層次結構清晰,使程式設計師只需關注業務邏輯的實現。

        (2)  豐富的標籤庫,大大提高了開發的效率。

        (3) Struts2提供豐富的攔截器實現。

        (4) 通過配置檔案,就可以掌握整個系統各個部分之間的關係。

        (5) 異常處理機制,只需在配置檔案中配置異常的對映,即可對異常做相應的處理。


        (6) Struts2的可擴充套件性高。Struts2的核心jar包中由一個struts-default.xml檔案,在該檔案中設定了一些預設的bean,resultType型別,預設攔截器棧等,所有這些預設設定,使用者都可以利用配置檔案更改,可以更改為自己開發的bean,resulttype等。因此使用者開發了外掛的話只要很簡單的配置就可以很容易的和Struts2框架融合,這實現了框架對外掛的可插拔的特性。

        (7) 面向切面程式設計的思想在Strut2中也有了很好的體現。最重要的體現就是攔截器的使用,攔截器就是一個一個的小功能單位,使用者可以將這些攔截器合併成一個大的攔截器,這個合成的攔截器就像單獨的攔截器一樣,只要將它配置到一個、Action中就可以。

 

缺點:

        (1) Struts2中Action中取得從jsp中傳過來的引數時還是有點麻煩。可以為Struts2的Action中的屬性配置上Getter和Setter方法,通過預設攔截器,就可以將請求引數設定到這些屬性中。如果用這種方式,當請求引數很多時,Action類就會被這些表單屬性弄的很臃腫,讓人感覺會很亂。還有Action中的屬性不但可以用來獲得請求引數還可以輸出到Jsp中,這樣就會更亂。假設從JSP1中獲得了引數money=100000,但是這個Action還要輸出到JSP2中,但是輸出的格式卻不同,money=100,000,這樣這個Action中的money中的值就變了。

       (2) 校驗還是感覺比較繁瑣,感覺太煩亂,也太細化了,如果校驗出錯的只能給使用者提示一些資訊。如果有多個欄位,每個欄位出錯時返回到不同的畫面,這個功能在Strut2框架下藉助框架提供的校驗邏輯就不容易實現。
       (3) 安全性有待提高。Struts2曝出2個高危安全漏洞,一個是使用縮寫的導航引數字首時的遠端程式碼執行漏洞,另一個是使用縮寫的重定向引數字首時的開放式重定向漏洞。這些漏洞可使黑客取得網站伺服器的“最高許可權”,從而使企業伺服器變成黑客手中的“肉雞”。


相關文章