Servlet(Server Applet),是用Java編寫的服務器端程序。其主要功能在於交互式地瀏覽和修改數據,生成動態Web內容。狹義的Servlet是指Java語言實現的一個接口,廣義的Servlet是指任何實現了這個Servlet接口的類,通常狀況下,人們將Servlet理解爲後者。java
Servlet運行於支持Java的應用服務器中。從實現上講,Servlet能夠響應任何類型的請求,但絕大多數狀況下Servlet只用來擴展基於HTTP協議的Web服務器。web
最先支持Servlet標準的是JavaSoft的Java Web Server。此後,一些其它的基於Java的Web服務器開始支持標準的Servlet。編程
Servlet編程須要使用到javax.servlet 和 javax.servlet.http兩個包下面的類和接口,在全部的類和接口中,javax.servlet.servlet 接口最爲重要。全部的servlet程序都必須實現該接口或者繼承實現了該接口的類。服務器
Servlet簡介及其生命週期jvm
在一個Servlet的生命週期中,init方法只會被執行一次,以後不管用戶執行多少次請求,都不會在調用該方法。 spa
關於init方法的執行時機,有兩種方式可選,通常的是在服務器啓動後第一個用戶請求改Servlet是調用,你也能夠設置該Servlet在服務器啓動後自動執行。 線程
init方法負責簡單的建立或者加載一些數據,這些數據將用於該Servlet的整個生命週期中。對象
當一個客戶請求改Servlet時,實際的處理工做所有有service方法來完成,service方法用來處理客戶端的請求,並生成格式化數據返回給客戶端。 繼承
每一次請求服務器都會開啓一個新的線程並執行一次service方法,service根據客戶端的請求類型,調用doGet、doPost等方法。 接口
service是由web容器來調用的,咱們無需對service具體內容作任何處理,service會自動的根據客戶端的請求類型去調用doGet、doPost等方法,因此咱們只須要作好doGet、doPost方法的實現就能夠了。
該方法在整個生命週期中,也是隻會被調用一次,在Servlet對象被銷燬是調用,在servlet中,咱們能夠作一些資源的釋放等操做,執行destory方法以後的servlet對象,會等待jvm虛擬機的垃圾回收機制擇時回收。