IT兄弟連 JavaWeb教程 JSP與Servlet的聯繫

  • 2019 年 10 月 5 日
  • 筆記

版權聲明:本文為部落客原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接和本聲明。

本文鏈接:https://blog.csdn.net/ITXDL123/article/details/90089777

Servlet是使用Java Servlet介面(API)運行在Web伺服器上的Java程式,其功能十分強大,它不但可以處理HTTP請求中的業務邏輯,而且還可以輸出HTML程式碼來顯示指定頁面,而JSP是一種在Servlet規範之上的動態網頁技術,在JSP頁面中,同樣可以編寫業務邏輯處理HTTP請求,也可以通過HTML程式碼來編輯頁面,在實現功能上,Servlet與JSP貌似相同,實質存在一定的區別,主要表現在以下幾方面:

角色不同:

JSP頁面可以存在HTML程式碼與Java程式碼並存的情況,而Servlet需要承擔客戶請求與業務處理中間角色,只有調用固定的方法才能將動態內容輸出為靜態的HTML,所以JSP更具有顯示層的角色。

編程方法不同:

Servlet與JSP在編程方法上存在很大的區別,使用Servlet開發Web應用程式需要遵循Java的標準,而JSP需要遵循一定腳本語言規範。在Servlet程式碼中,需要調用Servlet提供的相關API介面方法,才可以對HTTP請求及業務進行處理,對於業務邏輯方面的處理功能更加強大。然而在JSP頁面中,通過HTML程式碼與JSP內置對象實現對HTTP請求及頁面處理,其顯示介面的功能更強大。

Servlet需要編譯後運行:

Servlet需要在Java編譯器編譯後才可以運行,如果Servlet在編寫完成或修改後沒有被重新編譯則不能運行在Web容器中,而JSP則與之相反,JSP由JSP Container對其進行管理,它的編輯過程也由JSP Container對JSP進行自動編輯,所以,無論JSP文件被創建還是修改,都不需要對其編譯即可執行。

速度不同:

由於JSP頁面由JSP Container對其進行管理,在每次執行不同內容的動態JSP頁面時,JSP Container都要對其自動編譯,所以,它的效率低於Servlet的執行效率。而Servlet在編譯完成之後,則不需要再次編譯,可以直接獲取及輸出動態內容。在JSP頁面中的內容沒有變化的情況下,JSP頁面的編譯完成之後,JSP Container不會再次對JSP進行編譯。

Exit mobile version