JavaWeb篇_10——Servlet處理請求的原理以及Servlet的作用
Servlet處理請求的原理
? 當瀏覽器基于get方式請求我們創(chuàng)建Servlet時,我們自定義的Servlet中的doGet方法會被執(zhí)行。doGet方法能夠被執(zhí)行并處理get請求的原因是,容器在啟動時會解析web工程中WEB-INF目錄中的web.xml文件,在該文件中我們配置了Servlet與URI的綁定,容器通過對請求的解析可以獲取請求資源的URI,然后找到與該URI綁定的Servlet并做實例化處理(注意:只實例化一次,如果在緩存中能夠找到這個Servlet就不會再做次實例化處理)。在實例化時會使用Servlet接口類型作為引用類型的定義,并調用一次init方法,由于GenericServlet中重寫了該方法所以最終執(zhí)行的是GenericServlet中init方法(GenericServlet中的Init方法是一個空的方法體),然后在新的線程中調用service方法。由于在HttpServlet中重寫了Service方法所以最終執(zhí)行的是HttpServlet中的service方法。在service方法中通過request.getMethod()獲取到請求方式進行判斷如果是Get方式請求就執(zhí)行doGet方法,如果是POST請求就執(zhí)行doPost方法。如果是基于GET方式提交的,并且在我們的Servlet中又重寫了HttpServlet中的doGet方法,那么最終會根據Java的多態(tài)特性轉而執(zhí)行我們自定義的Servlet中的doGet方法。
Servlet的作用
- 獲取用戶提交的數據
- 獲取瀏覽器附加的信息
- 處理數據(訪問數據庫或調用接口)
- 給瀏覽器產生一個響應
- 在響應中添加附加信息
浙公網安備 33010602011771號