JSP等模板引擎已死,大前端為趨勢
時(shí)間:2023-06-12 06:27:02 | 來源:網(wǎng)站運(yùn)營
時(shí)間:2023-06-12 06:27:02 來源:網(wǎng)站運(yùn)營
JSP等模板引擎已死,大前端為趨勢: 我們先來看一下tomcat版本數(shù)據(jù):
我們可以看到,從tomcat8之后JSP就再?zèng)]有新的支持了,tomcat8大概是2013年發(fā)布的,也就是說,從2013年開始jsp技術(shù)已經(jīng)實(shí)質(zhì)上不被官方繼續(xù)維護(hù)了。
再從java框架springboot來看,默認(rèn)就是不支持jsp的,后臺(tái)模板引擎默認(rèn)是themleaf,但這并不能代表themleaf是未來趨勢,因?yàn)榍岸思夹g(shù)在后端技術(shù)進(jìn)步的同時(shí)在飛速發(fā)展。
自從JamesGosling開發(fā)Java語言,SUN大力推行基于Java的從前端到后端的完整的企業(yè)級(jí)解決方法(J2EE),發(fā)展至今基于服務(wù)器端JSP技術(shù)地位與處境已經(jīng)越來越尷尬。JSP技術(shù)的興起與發(fā)展得益于WEB技術(shù)推廣與發(fā)展,但是伴隨著WEB2.0發(fā)展與富客服端應(yīng)用(RIA)的發(fā)展,基于JSPTag的web偽前端技術(shù)表現(xiàn)的越來越無力。如今伴隨著更多的富客戶端技術(shù)的發(fā)展與不斷的走向成熟,其中具有代表性的為Angular、React、Vue等,同時(shí)伴隨著ajax技術(shù)以及HTTP長連接協(xié)議Bayeux廣泛應(yīng)用,而且已經(jīng)成為RFC標(biāo)準(zhǔn)文檔之一。而且伴隨著各大瀏覽器廠商對(duì)HTML5的大力支持,WEB開發(fā)應(yīng)用新一輪的技術(shù)革新已經(jīng)成為定局。在這種情況下,曾經(jīng)風(fēng)云一時(shí)的JSP/Tag模板引擎技術(shù)沒落是不可逆轉(zhuǎn)。
J2EE中傳統(tǒng)的前端依靠JSP Tag技術(shù)封裝,依靠服務(wù)器解析,完成頁面預(yù)編譯之后,通過HTTP發(fā)送到用戶瀏覽器端。那些數(shù)不清的JSP標(biāo)簽庫/TAG庫,由于缺乏必要的技術(shù)規(guī)范各大廠商完成的千差萬別。很多時(shí)候已經(jīng)成為影響J2EE開發(fā)效率的一大死穴。JSP等模板引擎作為偽前端技術(shù)(實(shí)際上是服務(wù)器端技術(shù))有如下弊端:
1. 標(biāo)簽庫沒有統(tǒng)一標(biāo)準(zhǔn),各大廠商完成不一,常使開發(fā)者暈頭轉(zhuǎn)向
2. 本身不是一種前端與后端分離的技術(shù),不能實(shí)現(xiàn)前端與后端各自的語言獨(dú)立
3. 不是好的富客戶端技術(shù),GWT雖然可以用為富客戶端前端技術(shù),但是也是基于Java
4. 前端與后端數(shù)據(jù)交換XML/JSON支持不夠靈活,不是天生支持Ajax
反觀Angular、React、Vue等前端技術(shù),主要有以下顯著特點(diǎn):
1. 前臺(tái)與后臺(tái)語言獨(dú)立,
2. 內(nèi)嵌支持Ajax
3. 靈活的數(shù)據(jù)交換支持XML/JSON
4. 前后端獨(dú)立語言的好處,理論上后端可以支持任何語言
現(xiàn)在很多新開發(fā)的WEB應(yīng)用,Java作用主要在后臺(tái),但瀏覽器端越來越與Java無關(guān)是無關(guān)的,這個(gè)就是WEB2.0的威力,Div + CSS + Json的數(shù)據(jù)交換以及Javascript庫(ExtJS, JQuery)的應(yīng)用,足以已經(jīng)使前端開發(fā)與后端開發(fā)完全分離,這些完全得益于ajax/Bayeux(Comet)等技術(shù)助推。伴隨著HTML5技術(shù)的進(jìn)一步推廣,獨(dú)自在后端閉門造車的行為變得尤其愚蠢。而且近些年發(fā)展迅猛的虛擬Dom技術(shù)類框架Angular、React、Vue,配合Redux、dva等數(shù)據(jù)流方案,使得大前端的時(shí)代已然真正的降臨。