標籤:包含 ram term data 傳遞 輸入 server multipart post
軟體152 羅傑
1. Http請求資料的組成:
a) 要求標頭
i. 用戶端資訊(瀏覽器資訊,位置資訊,cookie資料等)
ii. 請求資料體資訊(一下僅為主要的資訊)
User-Agent:用戶端的類型
Accept:瀏覽器可接受的MIME類型
Accept-Charset:瀏覽器支援的字元編碼
Accept-Encoding:瀏覽器知道如何解碼的資料編碼類別型
Accept-Language:瀏覽器指定的語言 Connection:是否使用持續串連
Content-Length:使用post方法提交是,傳遞資料的位元組數
Cookie:儲存的cookie對象
Host:主機和連接埠
b) 請求體:包含提交到伺服器的資料,只有post方法才有請求體,get請求的請求體包含在url中作為要求標頭的請求體
2. Http請求資料的類型:文本和二進位
註:當請求體資料是二進位的時候需引入解析位元據的第三方架構,例如:apache的Common fileupload,cos架構,JspSmartUpload 同時用戶端必須以post方式進行提交而且表單中要加入屬性:enctype=”multipart/form-data”
3. Http請求對象,實現HttpServletRequest介面(javax.servlet.http.HttpServletRequest)
a)聲明周期:每次Http請求時建立,當嚮應結束時銷毀
b)請求對象的方法:
i. 取得要求標頭的方法:
getHeader():取得指定的要求標頭字串類型的內容返回字串類型
getIntHeader():取得整數類型的指定內容返回整數類型
getDataHeader():取得如期類型的指定要求標頭中得內容返回日期類型
getHeaderNames();取得所有要求標頭的列表,返回枚舉類型
ii.取得請求體中包含的提交參數資料:
getParameter():取得指定名稱的參數資料
getParameterValues():取得指定參數名稱的資料數組
getParameterNames():取得所有請求參數的名稱
getParameterMap():取得所有請求的參數名和值
getInputStream():取得用戶端提交的輸入資料流。
iii.取得其他用戶端資訊:
getRemoteHost():取得請求客戶的主機名稱
getRemoteAddr():取得請求客戶的IP地址
getRemotePort():取得請求客戶的連接埠號碼
getProtocol():取得請求協議
getContentType():取得請求體內容的類型
getContentLength():取得當請求提為二進位流時請求體的長度,多用於檔案上傳
iii. 取得伺服器端資訊:
getServerName():取得伺服器的HOST,一般為IP
getServerPort():取得伺服器接收埠
iv. 取得cookie
getCookies():取得cookie數組
v.擷取請求地址資訊:
getRequestURL():取得URL;
getRequestURI():取得URI;
註:url與uri的區別:url指次檔案在全球互連網的地址
uri指檔案在網站下的地址
Http請求處理編程