更新時(shí)間:2020-11-26 17:38:27 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽1189次
說(shuō)到Java Web架構(gòu)我們不得不想到風(fēng)靡一時(shí)的Spring Web MVC,Spring Web MVC實(shí)際上是一種基于Java的實(shí)現(xiàn)Web MVC設(shè)計(jì)模式的請(qǐng)求驅(qū)動(dòng)類(lèi)型的輕量級(jí)Web框架,即使用了MVC架構(gòu)模式的思想,將web層進(jìn)行職責(zé)解耦,基于請(qǐng)求驅(qū)動(dòng)指的就是使用請(qǐng)求-響應(yīng)模型,框架的目的就是幫助我們簡(jiǎn)化開(kāi)發(fā),Spring Web MVC也是要簡(jiǎn)化我們?nèi)粘eb開(kāi)發(fā)的。
隨著 Web技術(shù)的不斷發(fā)展演化,衍生了大量的耳熟能詳?shù)腏ava Web開(kāi)發(fā)框架,比如Spring,Hibernate和Struts 2等等。
Java Web開(kāi)發(fā)框架中的三層架構(gòu):
1.表現(xiàn)層(Presentation layer)
2.業(yè)務(wù)邏輯層(Business Logic Layer)
3.數(shù)據(jù)訪(fǎng)問(wèn)層(Data access layer)
基于如上的三層架構(gòu)模型,我們可以將該架構(gòu)模式發(fā)展分為三個(gè)階段:
階段一:Servlet階段
階段二:SSH(Spring+Structs+Hibernate)階段
階段三:SSM階段(Spring+SpringMVC+Mybatis)階段
階段一:Servlet/Filter扮演控制器角色
1.在該階段架構(gòu)模式中,Servlet/Filter扮演Controller角色,JSP扮演View角色,JavaBean扮演Model角色。
2.該階段的數(shù)據(jù)庫(kù)訪(fǎng)問(wèn)技術(shù)為具體DB的jdbc
該模式雖然實(shí)現(xiàn)了所謂的MVC模式,但卻存在諸多問(wèn)題:
(1)前后端分離不徹底。由于JSP技術(shù)前后端分離不徹底,開(kāi)發(fā)人員往往會(huì)在JSP頁(yè)面中嵌套Java代碼,從而需要前端開(kāi)發(fā)人員懂java技術(shù)
(2)JSP頁(yè)面可讀性差,編寫(xiě)效率低,盡管引入EL,JSTL等技術(shù)
(3)Sevlet/Filter作為控制器,面臨的穩(wěn)定性,安全性考驗(yàn)(Servlet是線(xiàn)程不安全的)等
(4)數(shù)據(jù)庫(kù)訪(fǎng)問(wèn)技術(shù)采用傳統(tǒng)的jdbc,造成過(guò)多的冗余代碼
階段二:SSH
1.在該架構(gòu)模式中,Controller采用Spring框架技術(shù),View采用Structs框架技術(shù),DB訪(fǎng)問(wèn)技術(shù)采用Hibernate框架技術(shù)。
2.從SSH中,很容易看出前后端出現(xiàn)了專(zhuān)業(yè)化,精細(xì)化分工,且朝框架演變,如前端框架采用Structs,后端框架采用Spring等。
然而,SSH架構(gòu)模式雖然解決了Servlet/Filter架構(gòu)模式存在的問(wèn)題,實(shí)現(xiàn)了專(zhuān)業(yè)化、精細(xì)化分工,實(shí)現(xiàn)了模塊化和抽象化,但其卻存在一個(gè)比較大的問(wèn)題:框架笨重不靈活。如Hibernate雖然能滿(mǎn)足業(yè)務(wù)需求,能解決業(yè)務(wù),但其笨重不靈活,不能很好地實(shí)現(xiàn)可配置化的靈活方式,Structs也過(guò)于笨重。為了解決該問(wèn)題,JavaWeb專(zhuān)家們又提出了另外一種架構(gòu)模式,即SSM架構(gòu)模式。
(三)階段三:SSM
該模式中,Spring扮演Controller角色,SpringMVC扮演View角色(當(dāng)然,小型系統(tǒng),可直接采用SpringMVC即可),Mybatis扮演DB訪(fǎng)問(wèn)技術(shù)SSM架構(gòu)模式,在當(dāng)前的JavaEE中,算是比較流行的開(kāi)發(fā)模式了,也是大都數(shù)企業(yè)的技術(shù)選型之一。當(dāng)然,能與SSM相媲美的另一種設(shè)計(jì)思想,那就是微服務(wù)思想(SpringBoot+cloud技術(shù)等)。
以上就是Java Web架構(gòu)發(fā)展的3個(gè)階段,也是Web技術(shù)發(fā)展的必然趨勢(shì)。隨著Web技術(shù)的日新月異,我們也應(yīng)該與時(shí)俱進(jìn),學(xué)習(xí)更多的新興技術(shù),關(guān)注本站的Java資訊,前沿最新的Java實(shí)時(shí)信息一手掌握!
相關(guān)閱讀
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
有基礎(chǔ) 直達(dá)就業(yè)
業(yè)余時(shí)間 高薪轉(zhuǎn)行
工作1~3年,加薪神器
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問(wèn)老師會(huì)電話(huà)與您溝通安排學(xué)習(xí)
初級(jí) 202925
初級(jí) 203221
初級(jí) 202629
初級(jí) 203743