????????????????????????????????????????????????????????? SpringMVC與struts2區別
作為表現層中控制器技術的兩大掌門人,有哪些不同神功?
??首先struts2是作為類級別的攔截,一個類對應一個request上下文.springmvc是作為方法級別攔截.一個方法對應一個request上下文,而方法同時又跟一個url對應.所以從架構本身上來說SpringMVC更容易實現restful url,而Struts2的架構實現起來就非常更費勁.因為struts2中的action一個方法可以對應一個url但是類屬性卻被所有方法共享.
??在攔截器實現上 Struts2有自己的interceptor機制,SpringMVC用的是獨立的aop方式.這導致struts2的配置量還是比springmvc大.
???SpringMVC的入口是一個servlet ?而struts2是filter這就是導致兩者運行機制不同了.本值就是servelt和filter的區別了
struts內置核心控制器。???? 1,servlet 流程是短的,url傳來之后,就對其進行處理,之后返回或轉向到某一自己指定的頁面。它主要用來在 業務處理之前進行控制.
? ? ? ? 2,filter 流程是線性的, url傳來之后,檢查之后,可保持原來的流程繼續向下執行,被下一個filter, servlet接收等,而servlet 處理之后,不會繼續向下傳遞。filter功能可用來保持流程繼續按照原來的方式進行下去,或者主導流程,而servlet的功能主要用來主導流程。
? ? ? ? ?filter可用來進行字符編碼的過濾,檢測用戶是否登陸的過濾,禁止頁面緩存等
Springmvc 集成了ajax使用方便.只需要一個注解就可以實現,然后直接返回響應文本就可以了.而struts2攔截器集成了了ajax在action中處理是一般必須安裝插件.或者自己寫代碼集成進去使用起來不方便.
???????springmvc開發效率以及及性能就是比struts2高很多