免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
struts2和springmvc的區(qū)別

一、攔截機制的不同

  Struts2是類級別的攔截,每次請求就會創(chuàng)建一個Action,和Spring整合時Struts2的ActionBean注入作用域是原型模式prototype,然后通過setter,getter吧request數(shù)據(jù)注入到屬性。Struts2中,一個Action對應(yīng)一個request,response上下文,在接收參數(shù)時,可以通過屬性接收,這說明屬性參數(shù)是讓多個方法共享的。Struts2中Action的一個方法可以對應(yīng)一個url,而其類屬性卻被所有方法共享,這也就無法用注解或其他方式標(biāo)識其所屬方法了,只能設(shè)計為多例。

  SpringMVC是方法級別的攔截,一個方法對應(yīng)一個Request上下文,所以方法直接基本上是獨立的,獨享request,response數(shù)據(jù)。而每個方法同時又何一個url對應(yīng),參數(shù)的傳遞是直接注入到方法中的,是方法所獨有的。處理結(jié)果通過ModeMap返回給框架。在Spring整合時,SpringMVC的Controller Bean默認(rèn)單例模式Singleton,所以默認(rèn)對所有的請求,只會創(chuàng)建一個Controller,有應(yīng)為沒有共享的屬性,所以是線程安全的,如果要改變默認(rèn)的作用域,需要添加@Scope注解修改。

  Struts2有自己的攔截Interceptor機制,SpringMVC這是用的是獨立的Aop方式,這樣導(dǎo)致Struts2的配置文件量還是比SpringMVC大。

二、底層框架的不同

  Struts2采用Filter(StrutsPrepareAndExecuteFilter)實現(xiàn),SpringMVC(DispatcherServlet)則采用Servlet實現(xiàn)。Filter在容器啟動之后即初始化;服務(wù)停止以后墜毀,晚于Servlet。Servlet在是在調(diào)用時初始化,先于Filter調(diào)用,服務(wù)停止后銷毀。

三、性能方面

  Struts2是類級別的攔截,每次請求對應(yīng)實例一個新的Action,需要加載所有的屬性值注入,SpringMVC實現(xiàn)了零配置,由于SpringMVC基于方法的攔截,有加載一次單例模式bean注入。所以,SpringMVC開發(fā)效率和性能高于Struts2。

四、配置方面

  spring MVC和Spring是無縫的。從這個項目的管理和安全上也比Struts2高。

 

附注:攔截器與過濾器的區(qū)別 :

 

  1. 攔截器是基于java的反射機制的,而過濾器是基于函數(shù)回調(diào)。
  2. 攔截器不依賴與servlet容器,過濾器依賴與servlet容器。
  3. 攔截器只能對action請求起作用,而過濾器則可以對幾乎所有的請求起作用。
  4. 攔截器可以訪問action上下文、值棧里的對象,而過濾器不能訪問。
  5. 在action的生命周期中,攔截器可以多次被調(diào)用,而過濾器只能在容器初始化時被調(diào)用一次

 

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
SpringMVC與Struts2區(qū)別與比較總結(jié)
springMVC和struts2的對比
Java三大器之?dāng)r截器(Interceptor)的實現(xiàn)原理及代碼示例
SpringMVC中使用Interceptor攔截器
Struts與Spring MVC的區(qū)別
servlet/filter/listener/interceptor區(qū)別與聯(lián)系
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服