JSP、Servlet中get請求和post請求的區別總結_java

來源:互聯網
上載者:User

在學習JavaWeb最初的開始階段,大家都會遇到HttpServlet中的doGet和doPost方法。前兩天看《Head First Servlets & JSP》看到其中講關於Servlet中get請求和post請求的區別,現總結如下:

1:請求資料的大小不同。

因為get請求的資料是要追加到URL中,而URL的資料量一般不能超過2K,所以用get請求的方法對資料的大小有限制。而post要求方法是把資料放在訊息體中,所以理論上對資料量沒有限制。(但是實際操作中也不能能太大)

2:安全性不一樣

因為get請求的資料是追加在URL中,外部使用者能很方便的看到,從這個角度上來講不安全。而post方法因為是講請求放在訊息體中,不會直接在URL中顯示所以從這個角度來說資料會比較安全。

3:書籤建立

get請求可以建立書籤;post請求則不能。例如:假設你有一個頁面允許使用者指定搜尋規則。使用者可能一個星期之後才回來,想要得到原來的資料,但此時伺服器上已經有新的資料了。

4:方法的使用

get用於得到某些東西,只是簡單的擷取,不會對伺服器做任何的改變。post則使用者發送資料來進行處理,可以修改伺服器上的資料。

5:請求是否等冪

get請求是等冪的,它只是要得到一些東西,不會修改伺服器上的內容。它能執行多次,而且不會產生任何不好的副作用。而post不是等冪的,post體中的提交的資料可能用於無法復原轉的事務。所以從這個角度上來看的話要謹慎使用doPost()功能。

若表單中未指出method=“POST”,就會預設為HTTPGET請求。即預設狀態是調用get請求。

 在學習JavaWeb最初的開始階段,大家都會遇到HttpServlet中的doGet和doPost方法。

(1)doGet方法:主要是處理Http中的Get請求
(2)doPost方法:主要是處理Http中的Post請求

那麼Get請求和Post請求到底有什麼樣的區別

(1)get只有一個流,參數附加在url後,大小個數有嚴格限制且只能是字串
例如,http://localhost:8888/javaweb/getServlet?name=123
(2)post的參數是通過另外的流傳遞的,不通過url,所以可以很大,也可以傳遞位元據,如檔案的上傳。

什麼時候使用doGet和doPost方法 :

1.通過表單提交到的servlet,看form的method是get還是post  
2.通過連結<a  href…>訪問的servlet,doGet  
3.直接在ie地址欄中鍵入的servlet地址,doGet

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.