JSP、Servlet中g(shù)et請求和post請求的區(qū)別總結(jié)
在學(xué)習(xí)JavaWeb最初的開始階段,大家都會遇到HttpServlet中的doGet和doPost方法。前兩天看《Head First Servlets & JSP》看到其中講關(guān)于Servlet中g(shù)et請求和post請求的區(qū)別,現(xiàn)總結(jié)如下:
1:請求數(shù)據(jù)的大小不同。
因為get請求的數(shù)據(jù)是要追加到URL中,而URL的數(shù)據(jù)量一般不能超過2K,所以用get請求的方法對數(shù)據(jù)的大小有限制。而post請求方法是把數(shù)據(jù)放在消息體中,所以理論上對數(shù)據(jù)量沒有限制。(但是實際操作中也不能能太大)
2:安全性不一樣
因為get請求的數(shù)據(jù)是追加在URL中,外部用戶能很方便的看到,從這個角度上來講不安全。而post方法因為是講請求放在消息體中,不會直接在URL中顯示所以從這個角度來說數(shù)據(jù)會比較安全。
3:書簽建立
get請求可以建立書簽;post請求則不能。例如:假設(shè)你有一個頁面允許用戶指定搜索規(guī)則。用戶可能一個星期之后才回來,想要得到原來的數(shù)據(jù),但此時服務(wù)器上已經(jīng)有新的數(shù)據(jù)了。
4:方法的使用
get用于得到某些東西,只是簡單的獲取,不會對服務(wù)器做任何的改變。post則用戶發(fā)送數(shù)據(jù)來進行處理,可以修改服務(wù)器上的數(shù)據(jù)。
5:請求是否冪等
get請求是冪等的,它只是要得到一些東西,不會修改服務(wù)器上的內(nèi)容。它能執(zhí)行多次,而且不會產(chǎn)生任何不好的副作用。而post不是冪等的,post體中的提交的數(shù)據(jù)可能用于不可逆轉(zhuǎn)的事務(wù)。所以從這個角度上來看的話要慎重使用doPost()功能。
若表單中未指出method=“POST”,就會默認(rèn)為HTTPGET請求。即缺省狀態(tài)是調(diào)用get請求。
在學(xué)習(xí)JavaWeb最初的開始階段,大家都會遇到HttpServlet中的doGet和doPost方法。
(1)doGet方法:主要是處理Http中的Get請求
(2)doPost方法:主要是處理Http中的Post請求
那么Get請求和Post請求到底有什么樣的區(qū)別
(1)get只有一個流,參數(shù)附加在url后,大小個數(shù)有嚴(yán)格限制且只能是字符串
例如,http://localhost:8888/javaweb/getServlet?name=123
(2)post的參數(shù)是通過另外的流傳遞的,不通過url,所以可以很大,也可以傳遞二進制數(shù)據(jù),如文件的上傳。
什么時候使用doGet和doPost方法 :
1.通過表單提交到的servlet,看form的method是get還是post
2.通過鏈接<a href…>訪問的servlet,doGet
3.直接在ie地址欄中鍵入的servlet地址,doGet
相關(guān)文章
FastJson對于JSON格式字符串、JSON對象及JavaBean之間的相互轉(zhuǎn)換操作
這篇文章主要介紹了FastJson對于JSON格式字符串、JSON對象及JavaBean之間的相互轉(zhuǎn)換,非常不錯,具有參考借鑒價值,需要的朋友可以參考下2017-11-11springboot集成mybatis?plus和dynamic-datasource注意事項說明
這篇文章主要介紹了springboot集成mybatis?plus和dynamic-datasource注意事項說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-01-01SpringSecurity中的UserDetails和UserDetailsService接口詳解
這篇文章主要介紹了SpringSecurity中的UserDetails和UserDetailsService接口詳解,UserDetailsService 在 Spring Security 中主要承擔(dān)查詢系統(tǒng)內(nèi)用戶、驗證密碼、封裝用戶信息和角色權(quán)限,需要的朋友可以參考下2023-11-11MyBatis Plus更新對象無法設(shè)空值解決方案
這篇文章主要介紹了MyBatis Plus更新對象無法設(shè)空值解決方案,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-11-11java web用servlet監(jiān)聽器實現(xiàn)顯示在線人數(shù)
這篇文章主要為大家詳細(xì)介紹了java web用servlet監(jiān)聽器實現(xiàn)顯示在線人數(shù),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2020-03-03SpringBoot+websocket實現(xiàn)消息對話功能
WebSocket是一種在Web應(yīng)用程序中實現(xiàn)實時雙向通信的技術(shù),它可以用于在線游戲、在線聊天、推送通知、實時監(jiān)控等,并且比傳統(tǒng)的輪詢技術(shù)更加高效和可靠,本文就給大家介紹基于SpringBoot+websocket實現(xiàn)消息對話功能,感興趣的小伙伴可以自己動手試一試2023-09-09