一、什么是Servlet呢?
servlet 是由sun公司提供的動態web資源開發技術,本質上就是一段Java程序,這段java程序無法獨立運行,必須放在Servlet容器(比如:tomcat服務器)中運行,由容器調用執行!??
二、開發Servlet程序的步驟:
1、首先我們需要寫一個類,實現servlet接口,并添加未實現的方法。所以實現servlet的方法有三種:分別是繼承接口javax.servlet.Servlet,實現接口中的五個方法;繼承javax.servlet.GenericServlet;;繼承javax.servlet.http.HttpServlet;注意的是:servlet中的方法大多數不是由我們來調用的,而是由Tomcat調用的。并且servlet中的方法大都不是由我們創建的,而是由Tomcat創建的。
2、講編譯的類放到web應用中,并在web應用中的web.xml文件中配置servlet對外訪問的虛擬路徑,最后將web應用部署到虛擬主機中即可。
三、Servlet繼承結構
Servlet接口(父類)
? ? ? ? ? ? ?子類GenerServlet類,實現了servlet接口,并實現了大部分方法,但是service方法沒有實現,需要開發人員自己實現
? ? ? ? ? ? ? ? ? ? ? ? ? ? ?HttpServlet類繼承了GenerServlet類 ,并實現了service方法,在service方法中,判斷請求方式,通過不同的請? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 求方式來調用不同的doXXX()執行
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? XXXServlet類? ? 自己寫一個XXXServlet類繼承HttpServlet類,并覆蓋doGet()和doPost(),來處里不同的請求方式即可!
四、Servlet調用過程
?1.通過請求頭獲知瀏覽器訪問的是哪個主機,
2.再通過請求行獲取訪問的是哪個一個web應用,
3.再通過請求行中的請求路徑獲知訪問的是哪個資源,
4.通過獲取的資源路徑在web.xml中匹配到真實的路徑,
5.服務器會創建servlet對象,(如果是第一次訪問時,創建servlet實例,并調用init方法進行初始化操作)
6.調用service(request, response)方法來處理請求和響應的操作
7.調用service完畢后返回服務器 由服務器講response緩沖區的數據取出,以http響應的格式發送給瀏覽器
五、servlet生命周期
servlet被第一次訪問時創建,會立即調用init方法進行初始化操作,在此之后會一直駐留在服務器中,為后續的請求服務,只要有請求訪問就會調用service方法執行,直到服務器關閉或者web應用被移除,servlet實例也會被銷毀? ?在銷毀之前服務器會調用destroy()方法進行善后處理