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