Servlet&JSP學(xué)習(xí)之Servlet的請求和響應(yīng)
- Servlet的請求
假如你已經(jīng)安裝好了Eclipse或者其他IDE,現(xiàn)在就建一個(gè)Servlet文件試試看,你會(huì)發(fā)現(xiàn)建立的Servlet會(huì)默認(rèn)繼承javax.servlet.http.HttpServlet類,就算你沒有安裝Eclipse也無所謂,知道我們編寫的Servlet是需要繼承javax.servlet.http.HttpServlet類就可以啦。
現(xiàn)在打開這個(gè)類看看,看看Servlet的老爸長得如何,public abstract class HttpServlet extends GenericServlet implements Serializable; 從這看得出,Servlet還有一個(gè)爺爺,它是javax.servlet.GenericServlet,還實(shí)現(xiàn)了一個(gè)序列化的功能(java.io.Serializable),序列化的就不說啦,老實(shí)說,我也沒用過序列化這功能,僅處于知道有這個(gè)地球上有這么一個(gè)東西而已。再接著看看Servlet爺爺長得是啥樣,public abstract class GenericServlet extends Object implements Servlet, ServletConfig, Serializable; 我們這需要留意的是Servlet的爺爺是實(shí)現(xiàn)了Servlet的接口的,你打開Servlet接口,里面有這樣一句話:Defines methods that all servlets must implement. 換一句話,它是Servlet的老祖宗,所有的Servlet必須要實(shí)現(xiàn)這個(gè)接口,要不就不能稱之為Servlet。我們Web用的HTTP協(xié)議所以就是HttpServlet,同樣的道理,如果將來出現(xiàn)XTTP協(xié)議,也許你會(huì)看到一個(gè)XttpServlet,它必定也是實(shí)現(xiàn)了Servlet接口(當(dāng)然啦,技術(shù)出現(xiàn)了大變革除外)。Servlet的爸爸,爺爺?shù)姆椒ㄟ@么多,不可能每一個(gè)都說。就挑一些常用的(也就是Servlet生命周期的幾個(gè)函數(shù))說說:
void init(); //Servlet初始化
void service (ServletRequest req, ServletResponse res);
void doGet (ServletRequest req, ServletResponse res);
void doPost (ServletRequest req, ServletResponse res);
…………
Servlet各種服務(wù)
void destroy(); //Servlet的銷毀
記得李興華老師當(dāng)時(shí)是這樣說的:Servlet的生命周期其實(shí)就是人一生的寫照,Tomcat就是這個(gè)社會(huì)。人的經(jīng)歷首先是從出生開始的,對Servlet而言就是調(diào)用init()方法,想想看,人的一生能出生多少次啊?就一次,Servlet中init()的方法也只能調(diào)用一次,一般都是在Servlet第一次運(yùn)行時(shí)加載init()方法,你也可以設(shè)置為服務(wù)器啟動(dòng)的時(shí)候加載。人出生后,隨著年紀(jì)的增長,你就必須得投入到工作去,身體有缺陷的例外,而且工作不是說你只做一次,只要有需要,你就必須得做,重復(fù)的做。BOOS的命令,誰敢不服從,要不立刻吵你魷魚。對Servlet而言也是一樣,只是它沒有抵觸情緒而已,哈。它也是不斷的運(yùn)行doGet(), doPost()等方法,當(dāng)中有可能出現(xiàn)異常。人總有一天是會(huì)死亡的,死亡的確定有兩種,一種是的的確確死了,他的尸體就躺在你面前,另外一種是他失蹤了多少年,從法律的角度上判斷,他是死亡了,他的老婆擁有了合法改嫁的權(quán)利。對Servlet而言,它的死亡方式也有兩種:一種是服務(wù)器關(guān)閉,也就是的的確確死了,另外一種是該Servlet長時(shí)間不使用,Tomcat判斷其死亡,Servlet的生命周期到此結(jié)束。
2. Servlet響應(yīng)
使用響應(yīng)只是為了向客戶發(fā)送數(shù)據(jù),會(huì)對響應(yīng)調(diào)用兩個(gè)方法:
setContentType()
getWriter()
posted on 2008-12-18 16:14 peterJ 閱讀(2061) 評(píng)論(1) 編輯 收藏 所屬分類: Servlet&JSP