HttpServlet在不同型別時獲取引數方式

2021-10-06 14:37:27 字數 1020 閱讀 6894

獲取引數的方式:

1、request.getparameter()

2、request.getinputstream()

3、request.getreader()

(預設編碼方式)時

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

通常使用的表單也是採用這種方式編碼的,servlet 的 api 提供了對這種 編碼方式解碼的支援,只需要呼叫 servletrequest 類中的getparameter()方法就可以得到使用者表單中的字段和資料。

【注】不足:

(預設編碼方式)時

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

【注】當form表單內容採用enctype=multipart/form-data編碼時,即使先呼叫request.getparameter()也得不到資料,所以這時呼叫request.getparameter()方法對 request.getinputstream()或request.getreader()沒有衝突,即使已經呼叫了 request.getparameter()方法也可以通過呼叫request.getinputstream()或request.getreader()得 到表單中的資料,而request.getinputstream()和request.getreader()在同乙個響應中是不能混合使用的,如果混合使用就會拋異常。

不同型別語言

編譯型和解釋型的區別 先來看看編譯型語言定義 編譯型語言首先是將源 編譯生成機器指令,再由機器執行機器碼 二進位制 再來看看解釋型語言的定義 解釋型語言的源 不是直接翻譯成機器指令,而是先翻譯成中間 再由直譯器對中間 進行解釋執行。咋看一眼,還是一臉懵逼。下面打個比方 動態語言和靜態語言 我們常說的...

不同類佔空間大小

首先,討論只有乙個類的情況,乙個空型別對像不包含任何資訊,但是必須在記憶體中占用一定空間,否則無法使用,c 中每個空類佔1byte include using namespace std class base int main 當base類中包含乙個建構函式 析構函式和普通成員函式時 include...

不同型別的檔案

cpp檔案 cpp是用c 語言編寫的源 檔案的字尾 具體實現 h檔案 h是c語言和c 語言的標頭檔案 函式宣告,巨集定義,函式原型 pde檔案 一共有4種可能,分別為 1 powerdesk encrypted file 2 pathology data exchange file 3 afp pa...