servlet工作原理java servlet職責?
servlet職責?SJava web技術(shù)中Java和JSP有什么關(guān)系?JSP是傳統(tǒng)Java Web開發(fā)的核心組件,主要功能是構(gòu)建視圖。傳統(tǒng)的Java Web開發(fā)方案中有servlets和JavaBe
servlet職責?
S
Java web技術(shù)中Java和JSP有什么關(guān)系?
JSP是傳統(tǒng)Java Web開發(fā)的核心組件,主要功能是構(gòu)建視圖。
傳統(tǒng)的Java Web開發(fā)方案中有servlets和JavaBeans。Servlets充當控制器,而JavaBeans充當模型,這是經(jīng)典的Model2解決方案。
JSP能做什么?JSP可以做兩件事,一是展現(xiàn),二是業(yè)務處理。傳統(tǒng)的Model1解決方案是通過JSP JavaBean實現(xiàn)的(這是近20年前的解決方案)。簡單來說,JSP既可以做html,也可以做業(yè)務調(diào)度(Servlet)。雖然有人建議JSP只做表示層的事情,但是JSP完全可以嵌入可執(zhí)行的Java代碼,也就是可以集成表示層邏輯和業(yè)務邏輯。也正因為如此,目前大型項目中很少見到JSP。
傳統(tǒng)方案的請求流程是用戶 的請求發(fā)送到服務器,Servlet接收用戶 s要求(數(shù)據(jù)提取、數(shù)據(jù)驗證、函數(shù)匹配等。),然后調(diào)用JavaBean的業(yè)務方法完成業(yè)務處理,最后跳轉(zhuǎn)到JSP頁面,JSP頁面呈現(xiàn)結(jié)果。
目前這種方法只能在一些小規(guī)模的Web開發(fā)中看到,JSP很少用在一些大型的Web開發(fā)方案中,原因如下:
首先,JSP本質(zhì)上是一個Servlet。JSP是為了轉(zhuǎn)換成Servlet執(zhí)行時,要求JSP必須在Web容器中,而Web容器往往負責業(yè)務邏輯的處理,對性能影響很大。
第二,動態(tài)與靜態(tài)資源的耦合。這也是JSP飽受詬病的主要原因之一。前期是優(yōu)勢,后期是最大的劣勢。
第三,JSP內(nèi)容多,加載慢。前端工程師還需要了解各種JSP標簽的使用,這些標簽往往容易出錯。
目前大規(guī)模的Web開發(fā)方案是前端訪問直接到達html頁面,html頁面由單獨的服務器(比如Nginx)處理,提高了訪問的效率,然后html頁面發(fā)起接口調(diào)用。這樣可以完成靜態(tài)和動態(tài)的分類,提高開發(fā)效率,提高服務器的穩(wěn)定性。
當然,對于初學者來說,學習JSP的使用并沒有什么壞處。畢竟大量的項目還是用JSP作為展現(xiàn)端。如果項目的并發(fā)請求數(shù)量不高,采用JSP是非常方便的。
本人使用Java編程多年,目前領(lǐng)導一個Java開發(fā)團隊(移動互聯(lián)網(wǎng),大數(shù)據(jù)方向)。我會陸續(xù)在頭條寫一些關(guān)于Java開發(fā)的文章。有興趣的朋友可以關(guān)注我的頭條號,相信我會有所收獲。
如果你有任何關(guān)于Java開發(fā)的問題,也可以咨詢我。
謝謝你