成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

面試題:SpringMVC和Struts2的區(qū)別

isaced / 2448人閱讀

摘要:的入口是,而是這里要指出,和是不同的。以前認為是的一種特殊,這就導(dǎo)致了二者的機制不同,這里就牽涉到和的區(qū)別了。開發(fā)效率和性能高于。的實現(xiàn)機制有以自己的機制,用的是獨立的方式。

1、Struts2是類級別的攔截, 一個類對應(yīng)一個request上下文,SpringMVC是方法級別的攔截,一個方法對應(yīng)一個request上下文,而方法同時又跟一個url對應(yīng),所以說從架構(gòu)本身上SpringMVC就容易實現(xiàn)restful url,而struts2的架構(gòu)實現(xiàn)起來要費勁,因為Struts2中Action的一個方法可以對應(yīng)一個url,而其類屬性卻被所有方法共享,這也就無法用注解或其他方式標識其所屬方法了。
2、由上邊原因,SpringMVC的方法之間基本上獨立的,獨享request response數(shù)據(jù),請求數(shù)據(jù)通過參數(shù)獲取,處理結(jié)果通過ModelMap交回給框架,方法之間不共享變量,而Struts2搞的就比較亂,雖然方法之間也是獨立的,但其所有Action變量是共享的,這不會影響程序運行,卻給我們編碼 讀程序時帶來麻煩,每次來了請求就創(chuàng)建一個Action,一個Action對象對應(yīng)一個request上下文。
3、由于Struts2需要針對每個request進行封裝,把request,session等servlet生命周期的變量封裝成一個一個Map,供給每個Action使用,并保證線程安全,所以在原則上,是比較耗費內(nèi)存的。
4、 攔截器實現(xiàn)機制上,Struts2有以自己的interceptor機制,SpringMVC用的是獨立的AOP方式,這樣導(dǎo)致Struts2的配置文件量還是比SpringMVC大。
5、SpringMVC的入口是servlet,而Struts2是filter(這里要指出,filter和servlet是不同的。以前認為filter是servlet的一種特殊),這就導(dǎo)致了二者的機制不同,這里就牽涉到servlet和filter的區(qū)別了。
6、SpringMVC集成了Ajax,使用非常方便,只需一個注解@ResponseBody就可以實現(xiàn),然后直接返回響應(yīng)文本即可,而Struts2攔截器集成了Ajax,在Action中處理時一般必須安裝插件或者自己寫代碼集成進去,使用起來也相對不方便。
7、SpringMVC驗證支持JSR303,處理起來相對更加靈活方便,而Struts2驗證比較繁瑣,感覺太煩亂。
8、Spring MVC和Spring是無縫的。從這個項目的管理和安全上也比Struts2高(當然Struts2也可以通過不同的目錄結(jié)構(gòu)和相關(guān)配置做到SpringMVC一樣的效果,但是需要xml配置的地方不少)。
9、 設(shè)計思想上,Struts2更加符合OOP的編程思想, SpringMVC就比較謹慎,在servlet上擴展。
10、SpringMVC開發(fā)效率和性能高于Struts2。
11、SpringMVC可以認為已經(jīng)100%零配置。

1.核心控制器(前端控制器、預(yù)處理控制器):對于使用過mvc框架的人來說這個詞應(yīng)該不會陌生,核心控制器的主要用途是處理所有的請求,然后對那些特殊的請求(控制器)統(tǒng)一的進行處理(字符編碼、文件上傳、參數(shù)接受、異常處理等等),spring mvc核心控制器是Servlet,而Struts2是Filter。
2.控制器實例:Spring Mvc會比Struts快一些(理論上)。Spring Mvc是基于方法設(shè)計,而Sturts是基于對象,每次發(fā)一次請求都會實例一個action,每個action都會被注入 屬性,而Spring更像Servlet一樣,只有一個實例,每次請求執(zhí)行對應(yīng)的方法即可(注意:由于是單例實例,所以應(yīng)當避免全局變量的修改,這樣會產(chǎn)生線程安全問題)。
3.管理方式:大部分的公司的核心架構(gòu)中,就會使用到spring,而spring mvc又是spring中的一個模塊,所以spring對于spring mvc的控制器管理更加簡單方便,而且提供了全 注解方式進行管理,各種功能的注解都比較全面,使用簡單,而struts2需要采用XML很多的配置參數(shù)來管理(雖然也可以采用注解,但是幾乎沒有公司那樣使用)。
4.參數(shù)傳遞:Struts2中自身提供多種參數(shù)接受,其實都是通過(ValueStack)進行傳遞和賦值,而SpringMvc是通過方法的參數(shù)進行接收。
5.intercepter的實現(xiàn)機制:struts有以自己的interceptor機制,spring mvc用的是獨立的AOP方式。這樣導(dǎo)致struts的配置文件量還是比spring mvc大,雖然struts的配置能繼承,所以我覺得論使用上來講,spring mvc使用更加簡潔,開發(fā)效率Spring MVC確實比struts2高。spring mvc是方法級別的攔截,一個方法對應(yīng)一個request上下文,而方法同時又跟一個url對應(yīng),所以說從架構(gòu)本身上spring3 mvc就容易實現(xiàn)restful url。struts2是類級別的攔截,一個類對應(yīng)一個request上下文;實現(xiàn)restful url要費勁,因為struts2 action的一個方法可以對應(yīng)一個url;而其類屬性卻被所有方法共享,這也就無法用注解或其他方式標識其所屬方法了。spring3 mvc的方法之間基本上獨立的,獨享request response數(shù)據(jù),請求數(shù)據(jù)通過參數(shù)獲取,處理結(jié)果通過ModelMap交回給框架方法之間不共享變量,而struts2搞的就比較亂,雖然方法之間 也是獨立的,但其所有Action變量是共享的,這不會影響程序運行,卻給我們編碼,讀程序時帶來麻煩。
6.spring mvc處理ajax請求,直接通過返回數(shù)據(jù),方法中使用注解@ResponseBody,spring mvc自動幫我們對象轉(zhuǎn)換為JSON數(shù)據(jù)。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/65993.html

相關(guān)文章

  • 手撕面試官系列(二):開源框架面試Spring+SpringMVC+MyBatis

    摘要:跳槽時時刻刻都在發(fā)生,但是我建議大家跳槽之前,先想清楚為什么要跳槽。切不可跟風(fēng),看到同事一個個都走了,自己也盲目的開始面試起來期間也沒有準備充分,到底是因為技術(shù)原因影響自己的發(fā)展,偏移自己規(guī)劃的軌跡,還是錢給少了,不受重視。 跳槽時時刻刻都在發(fā)生,但是我建議大家跳槽之前,先想清楚為什么要跳槽。切不可跟風(fēng),看到同事一個個都走了,自己也盲目的開始面試起來(期間也沒有準備充分),到底是因為技...

    Flink_China 評論0 收藏0
  • Java3y文章目錄導(dǎo)航

    摘要:前言由于寫的文章已經(jīng)是有點多了,為了自己和大家的檢索方便,于是我就做了這么一個博客導(dǎo)航。 前言 由于寫的文章已經(jīng)是有點多了,為了自己和大家的檢索方便,于是我就做了這么一個博客導(dǎo)航。 由于更新比較頻繁,因此隔一段時間才會更新目錄導(dǎo)航哦~想要獲取最新原創(chuàng)的技術(shù)文章歡迎關(guān)注我的公眾號:Java3y Java3y文章目錄導(dǎo)航 Java基礎(chǔ) 泛型就這么簡單 注解就這么簡單 Druid數(shù)據(jù)庫連接池...

    KevinYan 評論0 收藏0
  • 近期Java高級工程師面試總結(jié)

    摘要:面試總結(jié)最近兩周面試了幾家公司高級工程師的職位,主要有宜信網(wǎng)信金融阿里高德口袋購物。目前有部分公司已經(jīng)面試通過,兩家在等消息。今天趁熱把常見面試內(nèi)容總結(jié)一下。可以用來完成統(tǒng)一命名服務(wù)狀態(tài)同步服務(wù)集群管理分布式應(yīng)用配置項等管理工作。 面試總結(jié) 最近兩周面試了幾家公司Java高級工程師的職位,主要有宜信、網(wǎng)信金融、阿里高德、口袋購物。目前有部分公司已經(jīng)面試通過,兩家在等消息。今天趁熱把常見...

    raoyi 評論0 收藏0
  • Java后端

    摘要:,面向切面編程,中最主要的是用于事務(wù)方面的使用。目標達成后還會有去構(gòu)建微服務(wù),希望大家多多支持。原文地址手把手教程優(yōu)雅的應(yīng)用四手把手實現(xiàn)后端搭建第四期 SpringMVC 干貨系列:從零搭建 SpringMVC+mybatis(四):Spring 兩大核心之 AOP 學(xué)習(xí) | 掘金技術(shù)征文 原本地址:SpringMVC 干貨系列:從零搭建 SpringMVC+mybatis(四):Sp...

    joyvw 評論0 收藏0
  • Struts2 SpringMVC區(qū)別?

    摘要:入口不同過濾器一個即前端控制器開發(fā)方式不同基于類開發(fā),傳遞參數(shù)通過類的屬性,只能設(shè)置為多例基于方法開發(fā)一個對應(yīng)一個方法,請求參數(shù)傳遞到方法形參,可以為單例也可以為多例建議單例請求方式不同值棧村塾請求和響應(yīng)的數(shù)據(jù),通過存取數(shù)據(jù)通過參數(shù)解析器將 △入口不同:Struts2:filter過濾器SpringMvc:一個Servlet即前端控制器 △開發(fā)方式不同:Struts2:基于類開發(fā),傳遞...

    phodal 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<