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