springmvc與Structs2本質區別


1.前端控制器不同:structs2入口是一個filter過濾器,springmvc入口是一個servlet.

 

2、設計思想不同: struts2通過在action類中定義成員變量接收請求參數,struts2只能使用多例模式管理action。

springmvc通過在controller方法中定義形參接收請求參數,springmvc可以使用單例模式管理controller。

 

3、springmvc是基於方法開發的,注解開發中使用requestMapping將url和方法進行映射,如果根據url找到controller類的方法生成一個Handler處理器對象(只包括一個method)。

struts2是基於類開發,每個請求過來創建一個action實例,實例對象中有若干的方法。

 

開發中建議使用springmvc,springmvc方法更類似service業務方法。

 

4、Struts采用值棧存儲請求和響應的數據,通過OGNL存取數據, springmvc通過參數綁定器是將request請求內容解析,並給方法形參賦值。

 

5、struts2和springmvc的速度是相當的,由於struts2的漏洞較多,很多企業轉向使用springmvc了。

 

為什么structs2設計成多例而不是單例?

如果我們把struts2設計為單例,那么在內存中只有一份,成員變量在內存中也只有一份!而我們定義成員變量的作用是接受參數,如果多個線程操作這個成員變量,給它設置值,那么一個線程設置的值就會覆蓋掉之前設置的值.


免責聲明!

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



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