1. 程式人生 > >關於請求引數的型別和獲取請求引數方法

關於請求引數的型別和獲取請求引數方法

一. 首先先來區分以下三個引數

request.getParameter()
request.getInputStream()
request.getReader()

根據表單提供提交資料的引數不同,而請求引數方法也不同

  1. enctype=application/x- www-form-urlencoded
    這種編碼方式是預設的編碼方式。

    編碼後的結果通常是field1=value2&field2=value2&… 的形式,如 name=aaaa&password=bbbb。

    通常使用的表單也是採用這種方式編碼的,Servlet 的 API 提供了對這種 編碼方式解碼的支援,只需要呼叫 ServletRequest 類中的 getParameter()方法就可以得到使用者表單中的欄位和資料。

    不足:

    這種編碼方式( application/x-www-form-urlencoded )雖然簡單,但對於傳輸大塊的二進位制資料顯得力不從心。

  2. 對於傳輸大塊的二進位制數這類資料,瀏覽器採用了另一種編碼方式,即 “multipart/form-data” 的編碼方式:

    瀏覽器可以很容易將表單內的資料和檔案放在一起傳送。這種編碼方式先定義好一個不可能在資料中出現的字串作為 分界符,然後用它將各個資料段分開,而對於每個資料段都對應著 HTML 頁面表單中的一個 Input 區,包括一個 content-disposition 屬性,說明了這個資料段的一些資訊,如果這個資料段的內容是一個檔案,還會有 Content-Type 屬性,然後就是資料本身,如果以這種方式提交資料就要用request.getInputStream()或request.getReader()得到 提交的資料,用 request.getParameter()是得不到提交的資料的。

二.我們再瞭解一下關於jquery中的請求

var params={            ajaxurlwithparam:"createmail2.do",  
                method:"POST",  
                data:{uname:uname,password:password,passwordconf:passwordconf,mobile:mobile,verifycode:verifycode,domain:domain,version:version}  
        };  
  regresult=ajaxRequest(params
); //function.js function ajaxRequest(params){ ..... $.ajax({ type : method, url : ajaxurl, async : ifasync, data : data, dataType : 'json', // success : function(result) { re=result; } }); return re; }

注意:jQuery 中的datatype 指的是預期伺服器返回的資料型別。

三.瞭解一下Content-type

MediaType,即是Internet Media Type,網際網路媒體型別;也叫做MIME型別,在Http協議訊息頭中,使用Content-Type來表示具體請求中的媒體型別資訊。

常見的媒體格式型別如下:

  • text/html : HTML格式
  • text/plain :純文字格式
  • text/xml : XML格式
  • image/gif :gif圖片格式
  • image/jpeg :jpg圖片格式
  • image/png:png圖片格式

    以application開頭的媒體格式型別:

  • application/xhtml+xml :XHTML格式
  • application/xml : XML資料格式
  • application/atom+xml :Atom XML聚合格式
  • application/json : JSON資料格式
  • application/pdf :pdf格式
  • application/msword : Word文件格式
  • application/octet-stream : 二進位制流資料(如常見的檔案下載)
  • application/x-www-form-urlencoded : 中預設的encType,form表單資料被編碼為key/value格式傳送到伺服器(表單預設的提交資料的格式)

另外一種常見的媒體格式是上傳檔案之時使用的:

  • multipart/form-data : 需要在表單中進行檔案上傳時,就需要使用該格式