SERVLET中的doGet與doPost兩個方法之間的區別
阿新 • • 發佈:2019-02-14
get和post是http協議的兩種方法,另外還有head, delete等 這兩種方法有本質的區別,get只有一個流,引數附加在url後,大小個數有嚴格限制且只能是字串。post的引數是通過另外的流傳遞的,不通過url,所以可以很大,也可以傳遞二進位制資料,如檔案的上傳。 在servlet開發中,以doGet()和doPost()分別處理get和post方法。 首先判斷請求時是get還是post,如果是get就呼叫doGet(), 如果是post就呼叫doPost()。都會執行這個方法。 1.doGetGET呼叫用於獲取伺服器資訊,並將其做為響應返回給客戶端。當經由Web瀏覽器或通過HTML、JSP直接訪問Servlet的URL時,一般用GET呼叫。GET呼叫在URL裡顯示正傳送給SERVLET的資料,這在系統的安全方面可能帶來一些問題,比如使用者登入,表單裡的使用者名稱和密碼需要傳送到伺服器端,若使用Get呼叫,就會在瀏覽器的URL中顯示使用者名稱和密碼。 例:jsp頁程式碼:<form action="/doGet_servlet" method="get">………<input type="text" >………</form>servlet程式碼:public class doGet_servlet extends HttpServlet { public void doGet(HttpServletRequest request,HttpServletResponse response) throws IOException,ServletException { request.setCaracterEncoding(“gb2312”);//漢字轉碼 PrintWriter out = response.getWriter(); out.println("The Parameter are :"+request.getParameter("name1")); }}這樣提交表單後,引數會自動新增到瀏覽器位址列中,帶來安全性問題。同時,get適合於傳送少量資料。