javax.servlet.http.HttpServlet有以下幾種方法,注意幾乎都是protected的,就是說(shuō)要繼承javax.servlet.http.HttpServlet才可以使用這些方法。
protected void doDelete(HttpServletRequest req, HttpServletResponse resp)
處理DELETE請(qǐng)求,允許一個(gè)客戶端刪除服務(wù)器上的一個(gè)文檔或頁(yè)面;
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
處理GET請(qǐng)求,顯式提交客戶端的信息,信息有長(zhǎng)度限制;
protected void doHead(HttpServletRequest req, HttpServletResponse resp)
同GET方法,不過(guò)返回的相應(yīng)只有HEAD部分,沒(méi)有BODY部分;
protected void doOptions(HttpServletRequest req, HttpServletResponse resp)
OPTIONS方法決定了服務(wù)器可以相應(yīng)哪些請(qǐng)求;
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
允許客戶端提交沒(méi)有長(zhǎng)度限制的數(shù)據(jù)信息;
protected void doPut(HttpServletRequest req, HttpServletResponse resp)
允許客戶端向服務(wù)器端發(fā)送一個(gè)文件,類似于ftp中的put指令;
protected void doTrace(HttpServletRequest req, HttpServletResponse resp)
給客戶端返回發(fā)出的TRACE請(qǐng)求的頭部分,此方法一般用于測(cè)試,沒(méi)有必要覆寫;
protected long getLastModified(HttpServletRequest req)
返回HttpServletRequest對(duì)象最后的修改時(shí)間,單位為毫秒,是從格林尼治標(biāo)準(zhǔn)時(shí)間的1970年1月1日零時(shí)開(kāi)始計(jì)算的;如果時(shí)間未知,返回一個(gè)負(fù)數(shù);
protected void service(HttpServletRequest req, HttpServletResponse resp)
接收public service方法發(fā)出的HTTP請(qǐng)求,并分配給doXXX方法;
void service(ServletRequest req, ServletResponse res)
分配客戶端請(qǐng)求給protected方法;
具體的細(xì)節(jié)說(shuō)明,請(qǐng)參見(jiàn)Java Web Services Developer Pack 1.0 Documentation
下邊是CSDN里邊的一些討論:
1.doGet和doPost的區(qū)別,在什么時(shí)候調(diào)用,為什么有時(shí)doPost中套用doGet
2.提交的form method=Post就執(zhí)行DOPOST,否則執(zhí)行GOGET 套用是不管method是post還是get都執(zhí)行dopost方法
5.通常的寫法:先用doGet(),然后在doPost()中調(diào)用doGet(),這樣就萬(wàn)無(wú)一失了
6. 簡(jiǎn)單的說(shuō),get是通過(guò)http header來(lái)傳輸數(shù)據(jù),有數(shù)量限制,而post則是通過(guò)http body來(lái)傳輸數(shù)據(jù),沒(méi)有數(shù)量限制。
7.還有一點(diǎn):get和post提交的數(shù)據(jù)量是不一樣的.
get好像最多只能在url后跟64K(?具體多少忘記了),
post好像沒(méi)這個(gè)限制,至少我post過(guò)5M以上的文本
還有url刷新時(shí)get好像可以不用重復(fù)提交原來(lái)提交的數(shù)據(jù),
而post則會(huì)說(shuō)內(nèi)容已提交,想刷新請(qǐng)?jiān)偬峤?