1. 程式人生 > >(重要)Http請求和HttpServletRequest中獲得對應引數的方法

(重要)Http請求和HttpServletRequest中獲得對應引數的方法

https://blog.csdn.net/oncealong/article/details/51383563#commentsedit

Http請求

GET /firstSample/hello HTTP/1.1    請求行
Host: localhost:8080               請求頭
Connection: keep-alive
Cache-Control: max-age=0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0
(Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.94 Safari/537.36 DNT: 1 Accept-Encoding: gzip, deflate, sdch Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.6 Cookie: 空行 name=oncealong&password=123456 (可選)實體內容,在post請求時用於提交
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

一個Http請求可以分為請求行, 請求頭, 和可選的實體內容, 我們分別來看下http和HttpServletRequest中的方法如何對應.

請求行

GET /firstSample/hello HTTP/1.1

GET: 請求方式, 其中常見的額有GET 、 POST、 HEAD、 TRACE、 PUT、 CONNECT 、DELETE 
/firstSample/hello : 可以使用url和uri. url只能用於網路 
HTTP/1.1: 協議版本. 之前還有http/1.0, 在一次連線中只能傳送一次請求. 現在都是使用http1.1, 可以在一次連線中傳送多次請求.

HttpServletRequest中用於獲取請求行的方法:

request.getMethod();     //請求方式
request.getRequetURI();  //request.getRequetURL()   請求資源
request.getProtocol();   //請求http協議版本
  • 1
  • 2
  • 3

請求頭

Host: localhost:8080 (必須的)當前請求訪問的目標地址(主機:埠) 
Connection: keep-alive 瀏覽器跟伺服器連線狀態。close: 連線關閉 keep-alive:儲存連線。 
Cache-Control: max-age=0 在0秒內不會重新訪問伺服器,也就是頁面立即失效。 
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,/;q=0.8 
Upgrade-Insecure-Requests: 1 
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.94 Safari/537.36 
DNT: 1 
Accept-Encoding: gzip, deflate, sdch 瀏覽器接受的資料壓縮格式 
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.6 瀏覽器接受的語言 
Cookie: 瀏覽器儲存的cookie資訊

HttpServletRequest中用於獲取請求頭的方法:

request.getHeader("name")   //根據name,獲取對應請求頭資料
request.getHeaderNames()    //獲取所有的請求頭名稱
  • 1
  • 2
  • 3

實體內容

name=oncealong&password=123456 
實體內容,在post請求時引數放在實體內容中

HttpServletRequest中用於獲取請求實體內容的方法:

request.getInputStream()   //獲取實體內容資料
  • 1

對於get方式, 要獲取提交的引數需要使用request.getQueryString();方法,這樣造成API的不一致, 很麻煩. 所以最好使用如下統一方便的獲取引數的方式:

request.getParameter("引數名");  //根據引數名獲取引數值(注意,只能獲取一個值的引數)
request.getParameterValue("引數名“); //根據引數名獲取引數值(可以獲取多個值的引數)
request.getParameterNames();   //獲取所有引數名稱列表  

相關推薦

重要Http求和HttpServletRequest獲得對應引數方法

https://blog.csdn.net/oncealong/article/details/51383563#commentseditHttp請求GET /firstSample/hello HTTP/1.1 請求行 Host: localhost:8080

HTTP深入淺出之http求和15以上的請求方式

HTTP(HyperText Transfer Protocol)是一套計算機通過網路進行通訊的規則。計算機專家設計出HTTP,使HTTP客戶(如Web瀏覽器)能夠從HTTP伺服器(Web伺服器)請求資訊和服務,HTTP目前協議的版本是1.1.HTTP是一種無狀態的協議,無狀態是指Web瀏覽器和Web伺服器

獲取HttpServletRequest的所有引數方法

在controller中建立一個空Map然後將該map和request傳到下面的方法中: public static void putParametersIntoMap(HttpServletRequest request ,Map<String, Object> paramMap)

爬蟲基礎http求和html結構

要使用selenium還是使用其他方式抓取網頁的內容,都必須對網頁的架構比較熟悉。我們來看看如何定位網頁的內容。 http的請求和響應 我們下面用Chrome為例來講解抓包,windows下用F12來調出開發者模式來審查網頁元素。 注意看到點選network;下面一

web 會話超時,請求http求和ajax非同步請求處理

@Overridepublic void doFilter(ServletRequest request, ServletResponse response,FilterChain filterChain) throws IOException, ServletException {HttpServletRe

NodeMCU網路請求http求和Https請求的示例程式碼C++開發

沒什麼可說的就是開發中需要做https請求,但是幾乎沒有找到例子。最後就研究開原始碼標頭檔案、等文件。實現了https請求。看到過一個部落格用的#include <WiFiClientSecure.h>但是那個封裝有問題。請求返回特別慢。後來看到NodeMCU有自

String類常用的方法重要

循環 類型 demo width 尋找 str2 子字符串 replace table 1.字符串與字節 public String(byte[] byte); 將全部字節變成字符串 public String (byte[] byte,int offset,in

深入理解計算機系統2.8---浮點數的舍入,Java的舍入例子以及浮點數運算重要

https://www.cnblogs.com/zuoxiaolong/p/computer12.html 前言     上一章我們簡單介紹了IEEE浮點標準,本次我們主要講解一下浮點運算舍入的問題,以及簡單的介紹浮點數的運算。   之前我們已經提到過,有很多小數是二進位制

jsp的basePath和path (絕對路徑 相對路徑)重要

在JSP中的如果使用 “相對路徑” 則有可能會出現問題. 因為網頁中的 “相對路徑” , 他是相對於 “URL請求的地址” 去尋找資源.  上面這句話是什麼意思呢 ? 舉個例子: 假如我們有一個專案: MyApp 在該專案下, 有一個jsp資料夾 該資料夾下

eclipse的classpath :db.proprties重要

你仔細看config的圖示。這個圖標表示該目錄是原始檔夾。編譯後原始檔夾的非java檔案會被copy到classes目錄。 你可以右鍵 選擇 build path ,然後可以把一些目錄加入成為原始檔夾,或者移出原始檔夾。 無論有幾個原始檔夾,最後都會被加到classe

SpringMVCcontroller接收Json資料重要

SpringMVC中controller接收Json資料 1.jsp頁面傳送ajax的post請求: function postJson(){ var json = {"username" : "imp", "password" : "123456"};

微信小程式http://v.juhe.cn不在合法域名列表

登入微信公眾平臺。點選設定,在request合法域名下填入你所用到的第三方域名。具體如下: 此時,儲存重新整理頁面。回到你的微信開發者工具,清除快取,重新編譯,開啟專案詳情頁面。可以看到合法域名已經更新了。 到這一步已經配置完畢了。 執行程式

hibernate基於annotation註解的方式建立資料庫表以及儲存資料到資料庫表重要

在這裡建立專案後要把相關jar包與資料庫相關的jar包引入,並且配置好hibernate.cfg.xml檔案,這個專案採用的資料庫名稱是hibernate_anno.再建立一個實體類User,我們用的是註解的方式,所以不用像上篇文章中建立一個實體類的配置檔案,可以直接在實體類

HTTP協議2HTTP協議的請求資訊

1:請求行   請求行分為三部分: 請求方式:GET、POST 資源路徑:/servlet/request http協議版本:http/1.1HTTP/0.9 :只接受GET一種請求方法,沒有在通訊中指定版本號,且不支援請求頭。由於該版本不支援POST方法,因此客戶端無法向

20.Spring-BootRabbitMQ的使用之概念原理理解重要

RabbitMQ 即一個訊息佇列,主要是用來實現應用程式的非同步和解耦,同時也能起到訊息緩衝,訊息分發的作用。 AMQP,即Advanced Message Queuing Protocol,一個提供統一訊息服務的應用層標準高階訊息佇列協議,是應用層協議的一個開放標準,為面向

Java對數組的操作—比較兩個數組的元素是否同樣的最簡單方法

con data println test popu pan equal main spa 呵呵呵,實現Java比較兩個數組中的元素是否同樣的功能你是怎麽做的?看以下最簡單方法: import java.util.Arrays;

學習用Node.js和Elasticsearch構建搜索引擎6:實際項目常用命令使用記錄

nds 黃色 ati cat htm action last shard open 1、檢測集群是否健康。 curl -XGET ‘localhost:9200/_cat/health?v‘#後面加一個v表示讓輸出內容表格顯示表頭 綠色表示一切正常,黃色表示所有

Asp.net web api的坑-【api的返回值】

技術分享 要求 data 都是 blog pan odi handle 自己 void無返回值 IHttpActionResult HttpResponseMessage 自定義類型 我這裏並不想贅述這些返回類型, 可以參考博文http://blog.csdn.net/

文件上傳的思考 http://blog.csdn.net/ncafei/article/details/53401961

內容 html csdn 大小寫 eva 最大 設備 改變 tar 文件上傳校驗 客戶端JavaScript校驗(一般只校驗後綴名) 一般都是在網頁上寫一段javascript腳本,校驗上傳文件的後綴名,有白名單形式也有黑名單形式。  判斷方式:在瀏覽加載文

log4net 使用總結- 1在ASP.NET MVC 使用

站點 href 還需 配置文件 str nag org src stat 1. 去官網下載log4net.dll,增加引用到站點下(你也可以通過nuget 安裝) http://logging.apache.org/log4net/download_log4net.cgi