JavaWeb層的下一個(gè)王者是誰?

JavaWeb層的下一個(gè)王者是誰?

Spring+Hibernate+Struts已成為Java開發(fā)的主流體系。在這個(gè)體系中,Spring+Hibernate的地位應(yīng)該說短期內(nèi)是難以撼動(dòng)了。除了新興的Jboss Seam作為挑戰(zhàn)者之外,幾乎難有勁敵。有趣的是當(dāng)初Spring、Hibernate作為挑戰(zhàn)者,將官方的EJB成功挑落馬下;這次反倒是官方的EBJ3成了挑戰(zhàn)者,不知結(jié)局如何。

  Java B/S編程中歷來戰(zhàn)火最激烈的其實(shí)還在Web層,框架的數(shù)量最多,爭(zhēng)議最大。

  一切由Struts而起,而Struts最終也坐穩(wěn)了第一個(gè)時(shí)代的王座。在技術(shù)層面,Struts 1.x已經(jīng)被無數(shù)人抱怨過、批評(píng)過,但終于還是穩(wěn)坐王位,這充分說明了習(xí)慣的力量。“穩(wěn)定壓倒一切”,這句話在IT技術(shù)領(lǐng)域仍舊適用。

  其實(shí)IT應(yīng)用技術(shù),什么新鮮玩意并不難學(xué)。難的是標(biāo)準(zhǔn)化和規(guī)范化。每個(gè)程序員都有自己的思路和習(xí)慣,寫出來的代碼自然是五花八門。Java何以成為編程界的老大,很重要的一點(diǎn)在于Java的規(guī)范化。這種規(guī)范化很高的語(yǔ)言適用于多人合作的大型項(xiàng)目,便于溝通和理解,也就便于集成和維護(hù)。Java世界為什么會(huì)框架橫飛,說到底還是規(guī)范化的需要。純JSP和Struts寫Web誰快,擺明了是JSP。那撐飽了用Struts?原因在于100個(gè)人寫出來的JSP,有100種寫法;而100個(gè)人寫出來的Struts,基本相似。Struts之成功,正緣于其在Java Web層的規(guī)范化方面所做出的貢獻(xiàn)。

  然而長(zhǎng)江后浪推前浪,Struts 1.x的技術(shù)缺陷畢竟是隱患。

  Sun力推JSF,打算一雪Web層框架缺失之恥。可惜JSF既要沿用Swing的技術(shù)路線,又要學(xué)ASP.NET,還要照顧產(chǎn)商的IDE,結(jié)果搞了個(gè)四不象,弄得里外不是人。當(dāng)然Sun的技術(shù)實(shí)力畢竟是超強(qiáng)的,只要?jiǎng)e重蹈EJB的覆轍,拿出點(diǎn)專斷的精神(像這兩年的NetBeans),做出像Swing那樣水準(zhǔn)的東西,JSF當(dāng)大有作為。JSF現(xiàn)在比較有優(yōu)勢(shì)的是對(duì)Ajax的集成,這一點(diǎn)走在了其他框架的前面。

(大家可以加入愛好集結(jié),一同交流:342836117) 歡迎交流: (老師q:858288017)

  而Struts就更沒有志氣了,把WebWork換了個(gè)標(biāo)簽,湊出個(gè)Struts2,Bug多多。說實(shí)在話,根本不如原版的WebWork。如果不是靠了原先的fans捧場(chǎng),根本就沒得混。不過Struts原本就不是以技術(shù)取勝的,靠的是搶占先機(jī)帶來的習(xí)慣優(yōu)勢(shì)。如果原先的fans們?cè)谶@兩年內(nèi)都能轉(zhuǎn)到Struts2,那么Struts二世仍將雄霸天下。

  綜上所述,未來兩年,JSF與Struts將展開Java Web框架的最終戰(zhàn)爭(zhēng)。

  以筆者愚見,結(jié)局有二:一是不論Struts還是JSF獲勝,Java Web層都將結(jié)束混戰(zhàn)的局面,這對(duì)Java Web開發(fā)的標(biāo)準(zhǔn)化是非常有利的,并有助于鞏固Java在B/S界的地位;二是Struts1.x、Struts2、JSF三分天下,必然從整體上削弱Java在B/S界的競(jìng)爭(zhēng)力,并將進(jìn)一步被RoR、ASP.NET、PHP所蠶食。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • spring mvc 工作機(jī)制(原理): DispatcherServlet主要用作職責(zé)調(diào)度工作,本身主要用于控制...
    java大濕兄閱讀 1,920評(píng)論 5 24
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語(yǔ)法,類相關(guān)的語(yǔ)法,內(nèi)部類的語(yǔ)法,繼承相關(guān)的語(yǔ)法,異常的語(yǔ)法,線程的語(yǔ)...
    子非魚_t_閱讀 31,778評(píng)論 18 399
  • 一. Java基礎(chǔ)部分.................................................
    wy_sure閱讀 3,839評(píng)論 0 11
  • (一)Struts、Spring、Hibernate、Mybatis框技術(shù) 1.Struts2.0有幾種標(biāo)簽庫(kù) 【...
    獨(dú)云閱讀 3,289評(píng)論 0 62
  • 序言 對(duì)于領(lǐng)域?qū)ο蟮腢T測(cè)試來說,基礎(chǔ)設(shè)施層(infra)的操作函數(shù)都應(yīng)該被打樁。對(duì)于Golang來說,大家通常會(huì)...
    _張曉龍_閱讀 8,699評(píng)論 0 6