什麼是Servlet?
Servlet是sun公司提供的一門用於開發動態web資源的技術。Sun公司在其API中提供了一個servlet接口,用戶若想用發一個動態web資源(即開發一個Java程序向瀏覽器輸出數據),須要完成如下2個步驟:
一、編寫一個Java類,實現servlet接口。
二、把開發好的Java類部署到web服務器中。
按照一種約定俗成的稱呼習慣,一般咱們也把實現了servlet接口的java程序,稱之爲Servlet。java
Servlet有什麼做用?
主要是處理客戶端的請求並將其結果發送到客戶端。web
Servlet的生命週期?
Servlet的生命週期是由Servlet的容器來控制的,它能夠分爲3個階段;初始化,運行,銷燬。數據庫
初始化階段:
1.Servlet容器加載servlet類,把servlet類的.class文件中的數據讀到內存中。
2.而後Servlet容器建立一個ServletConfig對象。ServletConfig對象包含了Servlet的初始化配置信息。
3.Servlet容器建立一個servlet對象。
4.Servlet容器調用servlet對象的init方法進行初始化。設計模式
運行階段:
當servlet容器接收到一個請求時,servlet容器會針對這個請求建立servletRequest和servletResponse對象。
而後調用service方法。並把這兩個參數傳遞給service方法。Service方法經過servletRequest對象得到請求的信息。並處理該請求。再經過servletResponse對象生成這個請求的響應結果。而後銷燬servletRequest和servletResponse對象。咱們無論這個請求是post提交的仍是get提交的,最終這個請求都會由service方法來處理。瀏覽器
銷燬階段:
當Web應用被終止時,servlet容器會先調用servlet對象的destrory方法,而後再銷燬servlet對象,同時也會銷燬與servlet對象相關聯的servletConfig對象。咱們能夠在destroy方法的實現中,釋放servlet所佔用的資源,如關閉數據庫鏈接,關閉文件輸入輸出流等。服務器
注意:在servlet生命週期中,servlet的初始化和和銷燬階段只會發生一次,而service方法執行的次數則取決於servlet被客戶端訪問的次數。
框架
Servlet怎麼處理一個請求?jsp
當用戶發送一個請求到某個Servlet的時候,Servlet容器會建立一個ServletRequst和ServletResponse對象。
在ServletRequst對象中封裝了用戶的請求信息,而後Servlet容器把ServletRequst和ServletResponse對象傳給用戶所請求的Servlet,Servlet把處理好的結果寫在ServletResponse中,而後Servlet容器把響應結果傳給用戶。post
Servlet與JSP有什麼區別?設計
1.jsp經編譯後就是servlet,也能夠說jsp等於servlet。
2.jsp更擅長頁面(表現)。servlet更擅長邏輯編輯。 (最核心的區別)。
3.在實際應用中採用Servlet來控制業務流程,而採用JSP來生成動態網頁.在struts框架中,JSP位於MVC設計模式的視圖層,而Servlet位於控制層。