Servlet簡介與生命周期


 

    一:Servlet是什么

        Servlet是運行在Web服務器上的Java程序,作為處理來自 Web 瀏覽器或其他 HTTP 客戶端的請求和 HTTP 服務器上的數據庫或應用程序之間的中間層。JSP在web服務器上要先轉換成servlet,然后才能在JVM運行,並把結果拼接成瀏覽器可識別的文件(如html)傳回瀏覽器顯示。

    二:Servlet的應用場景

        單純地對客戶端的請求做處理時,如果我們用純JSP文件(即:只有Java語句)來處理的話,還需要先轉換為servlet才能運行。與其這樣,我們可以直接定義servlet文件來處理來自頁面的請求。

    三:Servlet的生命周期

          Servlet的生命周期主要有三個階段:初始化——服務——銷毀。

          初始化:主要包括 加載、配置、創建實例 三部分。
                   加載:在客戶端首次請求該Servlet時,或着在web.xml配置該servlet屬性 <load-on-startup>1</load-on-startup>則隨着web服務器啟動而 加載
                   配置:為每個Servlet設置信息產生一個 ServletConfig對象;

                   創建:調用Servlet接口的init()方法,並將產生的ServletConfig對象當作參數傳入。在Servlet的生命周期中,僅執行一次init()方法。它在web服務器裝入Servlet時執行,負責初始化Servlet對象。同一個類型的Servlet對象在web服務器中以單例的形式存在。                  

init()方法是servlet生命的起點。一旦加載了某個servlet,服務器將立即調用它的init()方法。

           服務:每一次請求來到容器時,會產生HttpServletRequest與HttpServlceResponse對象,並作為參數傳給Service()。Service()負責響應客戶的請求。每當一個客戶請求一個HttpServlet對象,該對象的Service()方法就要被調用,而且傳遞給這個方法一個“請求”(ServletRequest)對象和一個“響應”(ServletResponse)對象作為參數。然后該方法自動進行匹配(根據request類型),調用doGet()或doPost()方法來處理請求。

HttpServlet是GenericServlet的子類。 
GenericServlet是個抽象類,必須給出子類才能實例化。它給 出了設計servlet的一些骨架,定義了servlet生命周期,還有一些得到名字、配置、初始化參數的方法,其設計的是和應用層協議無關的,也就是說 你有可能用非http協議實現它。 
HttpServlet是子類,當然就具有GenericServlet的一切特性,還添加了doGet, doPost, doDelete, doPut, doTrace等方法對應處理http協議里的命令的請求響應過程。 
一般沒有特殊需要,自己寫的Servlet都擴展HttpServlet 。

 

           銷毀:在服務器端停止且卸載Servlet時調用destroy(),釋放占用的資源。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM