Jsp 和 Servlet 的對比學習
阿新 • • 發佈:2018-12-24
JSP 和 SERVLET
JSP(JavaServlet Page)實際上它也是從Servlet繼承而來。只不過它在Servlet當中又新增/修改了一些方法,作了新的封裝。具體到Tomcat Web應用伺服器中,它通過一個多重繼承,分別從Java的HttpJspPage和HttpServlet兩個類那裡繼承和實現一些方法,然後封裝一個叫做HttpJspBase的類從而實現了一個通用化的JSP類,使用者在開發自己的JSP時,只需要從HttpJspBase繼承一個自己的類,然後根據需要去實現相應的方法即可。
因此這也是為什麼JSP的程式碼中總是閃現Servlet程式碼框架影子的原因,其實它們只是為實現同樣的功能而進行了不同封裝的元件而已,底層都是一樣的。
瞭解兩個問題
JSP是什麼
JSP就是嵌入了Java程式碼的HTMLSERVLET是什麼
Servlt就是嵌入了HTML的Java類
區別
那肯定是因為JSP有它更高明的地方。
servlet
使用Servlet產生動態網頁,需要在程式碼中列印輸出很多HTML的標籤
此外,在Servlet中,我們不得不將靜態現實的內容和動態產生內容的程式碼混合在一起。
使用Servlet開發動態網頁,程式設計師和網頁編輯人員將無法一起工作,為了解決這些問題,Sun公司就推出了JSP技術。
jsp
JSP是Servlet的擴充套件,在沒有JSP之前,就已經出現了Servlet技術。Servlet是利用輸出流動態生成HTML頁面,包括每一個HTML標籤和每個在HTML頁面中出現的內容。
JSP通過在標準的HTML頁面中插入Java程式碼,其靜態的部分無須Java程式控制,只有那些需要從資料庫讀取並根據程式動態生成資訊時,才使用Java指令碼控制。
相同
- JSP是Servlet的一種特殊形式,每個JSP頁面就是一個Servlet例項——JSP頁面由系統編譯成Servlet,
- Servlet再負責響應使用者請求。JSP其實也是Servlet的一種簡化,使用JSP時,其實還是使用Servlet,因為Web應用中的每個JSP頁面都會由Servlet容器生成對應的Servlet。
- 對於Tomcat而言,JSP頁面生成的Servlet放在work路徑對應的Web應用下。
- Tomcat根據JSP頁面生成對應Servlet的Java檔案及class檔案。
JSP過程
- JSP檔案必須在JSP伺服器內執行。JSP檔案必須生成Servlet才能執行。每個JSP頁面的第一個訪問者速度很慢,因為必須等待JSP編譯成Servlet。被tomcat編譯為servlet,存放在work目錄
- JSP頁面的訪問者無須安裝任何客戶端,甚至不需要可以執行Java的執行環境,因為JSP頁面輸送到客戶端的是標準HTML頁面。
- 當客戶請求一個JSP頁面的時候,Tomcat伺服器自動生成Java檔案、編譯Java檔案,並用編譯得到的位元組碼檔案在伺服器端建立一個Servlet。
生命週期對比流程圖
送上jsp的生命週期流程圖
對比servlet的生命週期流程圖
總結
- servlet是在web伺服器上的java程式,它提供服務,由它來傳遞給你html的格式。Servlet API為Servlet提供了統一的程式設計介面
- Servlet必須部署在Servlet容器,才能響應客戶端的請求 對外提供服務。要對外統一介面,由容器來呼叫。
- jsp側重顯示;servlet側重控制邏輯。