springmvc和struts2的區別


談談springmvc和struts2的區別
相同點:二者都是基於mvc的web層的框架,都是負責接收用戶瀏覽器提交的請求參數,通過某些校驗操作調用業務層,而后獲取到業務層返回的數據,將數據通過某種方式在前台展示。
不同點
(1)springmvc是基於方法開發的,struts2是基於類開發的。
(2)因為二者基於的出發點不同,所以在接收請求參數時區別比較大。
   springmvc是通過參數綁定接收瀏覽器請求參數(方法上各種形參(request、response、session、Model、ModelMap、簡單類型、簡單pojo、包裝類pojo)瀏覽器的請求參數),方法執行結束,形參數據就會銷毀。
   struts2是通過類中的成員變量接收瀏覽器請求參數的。
(3)由於接收請求參數方式的不同
   springmvc:因為方法之間是線程隔離的,所以springmvc支持單例和多例的開發方式。
   struts2:成員變量在開發中多線程會存在線程安全問題,所以struts2只能支持多例的開發方式。
 (4)springmvc是通過存儲數據ModelAndView,在前台頁面通過jstl(默認)展示數據的
   struts2是通過值棧存儲數據,在頁面通過OGNL展示數據的


還有一點擴展的,想起來就大概說說
  springmvc通過映射器根據url找到對應Handler,該Handler中只包含了一個method方法,這種開發的方式更接近與 服務 的開發,目前來看基本沒有掃除什么漏洞。
struts2不是因為是多例開發比較慢,網上有說經過大量測試是使用了struts2的標簽所以導致慢,所以建議使用jstl標簽。而且建議使用較新的包,因為stuts2畢竟出來的早,漏洞能稍微多一點,不過使用較新的包也基本沒有什么問題。


以上是博主學習中總結的,如有錯誤,請在下方評論給出建議,共同進步,謝謝。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM