1. 程式人生 > >初學者對Servlet、JSP及Web容器之間關係的理解

初學者對Servlet、JSP及Web容器之間關係的理解

Servlet就是一個Java程式,一個Servlet應用程式經常包含一個或者多個Servlet也就是當用戶傳送請求,例如提交表單,那麼需要一個或多個Servlet協同作用,而訪問的jsp頁面也是一個Servlet。當每次我們傳送請求時,Servlet應用程式中的service()方法就會被觸發執行一次。當初次訪問一個Servlet時,init()方法會觸發執行一次,之後的請求都是執行service()方法。

如果你覺得奇怪,為什麼沒看到過service()這個方法,那是因為我們一般用的是通過繼承HttpServlet來實現Servlet,而在HttpServlet中一般的請求我們只要@override

doGet()doPost()方法即可實現我們對請求的處理。而HttpServlet中的service()方法會根據請求的型別呼叫對應的doGet()doPost()等等方法,所以只要實現doGet()doPost()方法等等即可。

為什麼說jsp也是一個Servlet呢,那是因為當我們使用Servlet/JSP容器時,例如最常用的Tomcat會將jsp檔案轉化成相應的一個Servlet程式,jsp頁面的主體就轉化成相應程式碼位於service()方法當中。jsp技術只是將開發變得簡單,然而基本原理還是不變的,實現及其複雜的Servlet就由Tomcat這一類的容器來實現,我們只要實現jsp

頁面就可以了。

訪問Servlet只需為地址新增對映到Servlet類即可或者是@WebServlet註解實現。

Servlet是一個介面,含有五個方法:

  • init。僅在第一次訪問Servlet時呼叫,之後不再呼叫。
  • service。每次請求Servlet時,Servlet容器都會呼叫這個方法。第一次呼叫init,之後呼叫service。這裡編寫Servlet要實現的處理程式碼。
  • destroy。銷燬Servlet時,Servlet容器就會呼叫這個方法。
  • getServletInfo……
  • getServletConfig……

類與介面