1. 程式人生 > >通過原始碼分析Servlet的service方法和doXXX方法

通過原始碼分析Servlet的service方法和doXXX方法

首先,對於我們建立的任意一個Servlet都必須要實現Servlet介面,GenericServlet是一個通用的、不特定與任何協議的Servlet,它實現了Servlet介面,而HttpServlet繼承於GenericServlet,因此HttpServlet也實現了Servlet介面,所以我們定義Servlet時只需繼承HttpServlet即可。

Servlet介面中定義了service方法,而HttpServlet對該方法進行了實現。具體的實現方法是:

1)將ServletRequest和ServletResponse轉換為HttpServletRequest和HttpServletResponse。

   

2)轉換完畢後,將呼叫自身的service方法。

3)在HttpServlet中的service方法中,首先獲得到請求的方法名,然後根據相應的方法名呼叫相對應的doXXX方法。例如請求方法為GET,那麼就會去呼叫doGet方法。

        

4)在HttpServlet提供的doXXX方法中都只含有錯誤資訊,並沒有進行相應的實現,所以我們需要在自己定義的Servlet中override這些doXXX方法。下面以doGet方法為例: