servlet工作原理、生命週期



servlet:用Java編寫的服務器端程序。其主要功能在於交互式地瀏覽和修改數據,生成動態Web內容。


servlet語法:包聲明; 包導入()繼承父類HttpServlet複寫doPost()或者doGet()

      Class servletTest extendsHttpServlet(HttpServletRequest req, HttpServletResponse resp)-----req中保存的是request內置對象的地址,resp中保存的是response內置對象的地址。

      包導入:javax.servlet.http.*; javax.servlet.*(例如:繼承Servlet時候可能出現ServletException異常) java.io.IOException




生命週期 如果web.xml中配置了<load-on-startup>,servlet將在tomcat啓動時就創建,如果沒有,將在servlet第一次被訪問時創建;在一創建servlet時就會調用init();而在init方法中接收了ServletConfig接口類型的config對象。 doPost(); doGet(); destroy()tomcat關閉,servlet銷燬】

簡述爲:Servlet生命週期分爲三個階段:

  1,初始化階段  調用init()方法

  2,響應客戶請求階段  調用service()方法

  3,終止階段  調用destroy()方法





servlet最大的特點就是CGI,CGI—通用網關接口:瀏覽器一向服務器發送請求,就創建了request對象,此時自動將request對象注入到了tomcatservlet組件





工作原理:


Servlet初始化階段:


       tomcat啓動,在下列時刻Servlet容器裝載Servlet:

    1,Servlet容器啓動時自動裝載某些Servlet,實現它只需要在web.XML文件中的<Servlet></Servlet>之間添加如下代碼:

    2,在Servlet容器啓動後,客戶首次向Servlet發送請求

    3,Servlet類文件被更新後,重新裝載Servlet

Servlet被裝載後,Servlet容器創建一個Servlet實例並且調用Servlet的init()方法進行初始化。在Servlet的整個生命週期內,init()方法只被調用一次。

Servlet相應階段:

        客戶開始發送一個請求,Servlet調用service()方法對請求進行響應的,通過源代碼可見,service()方法中對請求的方式進行了匹配,選擇調用doGet,doPost等這些方法,然後再進入對應的方法中調用邏輯層的方法,進行相應的業務處理,期間包括創建業務對象、調用業務方法、訪問數據庫、存儲數據等等操作,業務處理完了,根據轉向信息信息進行轉向,這樣實現對客戶的響應。

       

Servlet終止階段:

  當WEB應用被終止,或Servlet容器終止運行,或Servlet容器重新裝載Servlet新實例時,Servlet容器會先調用Servlet的destroy()方法,在destroy()方法中可以釋放掉Servlet所佔用的資源


Servlet與JSP的比較:

  有許多相似之處,都可以生成動態網頁。

  JSP的優點是擅長於網頁製作,生成動態頁面比較直觀,缺點是不容易跟蹤與排錯。

  Servlet是純Java語言,擅長於處理流程和業務邏輯,缺點是生成動態網頁不直觀









發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章