doPost:處理POST請求
當發出客戶端請求的時候,調用service 方法並傳遞一個請求和響應對象。Servlet首先判斷該請求是GET 操作還是POST 操作。然後它調用下面的一個方法:doGet 或 doPost。如果請求是GET就調用doGet方法,如果請求是POST就調用doPost方法。doGet和doPost都接受請求(HttpServletRequest)和響應(HttpServletResponse)。
1、大小
get只有一個流,參數附加在url後,地址行顯示要傳送的信息,大小個數有嚴格限制且只能是字符串,大小限制在1024KB。post的參數是通過另外的流傳遞的, 不通過url,所以可以很大,也可以傳遞二進制數據,如文件的上傳。
2、地址欄
get通過URL提交的參數會顯示在地址欄中,這在系統的安全方面可能帶來問題;post提交的參數不會顯示在地址欄中。這樣post就可以提高get的安全性能,避免數據的泄露。
3、執行
當form框裏面的method爲get時,執行doGet方法,使用get提交就必須在服務器端用doGet()方法接收;當form框裏面的method爲post時,執行doPost方法,使用post提交就必須在服務器端用doPost()方法接收。
4、編碼轉換
在request請求裏面,編碼轉換;get方法得到的內容每一個都要進行編碼轉換,而post方法則只要設置request.setCharacterEncoding("UTF-8")就可以,不要再從request得到的每個數據進行編碼轉換了。