Struts2(一) 學習興趣、框架簡介、框架優缺點
首先學習這個框架可能是因為自己太自私吧,因為我在智聯網站上研究過網際網路公司的招聘,只要是涉及到後臺開發的都需要這麼框架,在說之前雖然對這框架有過了解,但是沒有用到實際的專案中去,現在做的專案使用到的是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個高危安全漏洞,一個是使用縮寫的導航引數字首時的遠端程式碼執行漏洞,另一個是使用縮寫的重定向引數字首時的開放式重定向漏洞。這些漏洞可使黑客取得網站伺服器的“最高許可權”,從而使企業伺服器變成黑客手中的“肉雞”。
相關文章
- Struts2框架學習(一)框架
- 開源JAVA單機爬蟲框架簡介,優缺點分析Java爬蟲框架
- 分享6個Java框架及優缺點介紹Java框架
- 【Struts2框架學習】框架
- 使用css框架的優缺點CSS框架
- Django框架,Flask框架和Tornado框架各有什麼優缺點Django框架Flask
- jdon框架優缺點之我見框架
- docker簡介以及優缺點Docker
- Java之struts2框架學習Java框架
- 框架學習:webWork框架和struts2框架的結構和分析框架Web
- 6 大主流 Web 框架優缺點對比Web框架
- Redis和MongoDB優缺點介紹!Python學習RedisMongoDBPython
- JAVAEE框架學習——Struts2——Action API 使用Java框架API
- 幾款主流PHP框架的優缺點評比PHP框架
- DHCP伺服器的優缺點簡介伺服器
- 深度學習中的框架特點及介紹深度學習框架
- Java集合框架系列教程一:集合框架簡介Java框架
- struts2框架搭建學習遇到的問題框架
- Python基礎知識之Django框架優缺點!PythonDjango框架
- 五大 JAVA Web 框架的優缺點對比JavaWeb框架
- WebApp 開發框架推薦以及優缺點分析WebAPP框架
- 四大主流PHP框架的優點和缺點總結PHP框架
- 常見物聯網模型優缺點簡介模型
- 深度學習(Deep Learning)優缺點深度學習
- 乾貨分享!三大Java框架的優缺點對比Java框架
- Scrapy框架簡介框架
- HTML 框架簡介HTML框架
- Flask 框架簡介Flask框架
- Django框架簡介Django框架
- graphicsview框架簡介View框架
- 學習是ssm框架的一點點感悟與思考SSM框架
- 請問 struts框架與其他 框架比較 的缺點框架
- wsgiref模組、web框架、django框架簡介Web框架Django
- spring框架——Spring框架簡介Spring框架
- 帶著興趣去學習LinuxLinux
- 部分聚類演算法簡介及優缺點分析聚類演算法
- 駁 《駁 《駁 《駁 《停止學習框架》》》》、《駁 《駁 《停止學習框架》》》、《駁 《停止學習框架》》、《停止學習框架》框架
- Hibernate框架簡介⑤框架