在這裏學習Servlet和JSP post
>> Servlet&JSP的那些事兒學習
>> servleturl
【書籍】spa
孫鑫的《Servlet/JSP深刻詳解:基於Tomcat的Web開發》.net
林信良的《JSP&Servlet學習筆記(第二版)》線程
Servlet容器處理請求的過程orm
在開始正文以前,讓咱們複習並細化一下Servlet容器處理請求的過程。對象
1)用戶點擊一個連接,指向了一個servlet而不是一個靜態頁面。blog
2)容器「看出」這個請求是一個Servlet,因此它建立了兩個對象HttpServletRequest和HttpServletResponse。ci
3)容器根據請求中的URL找到正確的Servlet,爲這個請求建立或分配一個線程,並把請求和響應對象傳遞給這個Servlet線程。
4)容器調用Servlet的service()方法。根據請求的不一樣類型,service()方法會調用doGet()或doPost()方法。這裏假設調用doGet()方法。
5)doGet()方法生成動態頁面,並把這個頁面「塞到」響應對象裏,須要注意的是,容器還有響應對象的一個引用!
6)線程結束,容器把響應對象轉換爲一個HTTP響應,並把它發回給客戶,而後刪除請求和響應對象。
那麼問題來了:doGet()和doPost()的區別?
1.doGet和doPost的區別,在何時調用,爲何有時doPost中套用doGet
2.提交的form method=Post就執行DOPOST,不然執行GOGET 套用是無論method是post仍是get都執行dopost方法
3.get:你能夠經過URL傳參數。http://www.csdn.net/index.asp?user=1234 , Post不行 4.你的表單提交都有方法的,若是提交爲get就調用get方法,用post就調用post方法. get顯示你傳過去的參數,post則不顯示. 5.一般的寫法:先用doGet(),而後在doPost()中調用doGet(),這樣就萬無一失了 6. 簡單的說,get是經過http header來傳輸數據,有數量限制,而post則是經過http body來傳輸數據,沒有數量限制。 7.還有一點:get和post提交的數據量是不同的. get好像最多隻能在url後跟64K(?具體多少忘記了), post好像沒這個限制,至少我post過5M以上的文本 還有url刷新時get好像能夠不用重複提交原來提交的數據, 而post則會說內容已提交,想刷新請再提交.