一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - HttpServletRequest對象簡介_動力節點Java學院整理

HttpServletRequest對象簡介_動力節點Java學院整理

2020-12-06 15:22fjdingsd Java教程

這篇文章主要為大家詳細介紹了HttpServletRequest對象簡介的相關資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下

通過getmethod方法獲得的是客戶端訪問該web應用的http請求方式。

代碼和結果如下:

?
1
2
string requestmethod = request.getmethod();
system.out.println(requestmethod);

HttpServletRequest對象簡介_動力節點Java學院整理

想獲取客戶端發來的http請求頭中的內容可以使用如下方法:

getdateheader()

getheader(string)

getheadernames()

getheaders(string)

getintheader(string);

這些方法在各個特定的情況下能有不同的用途,體現出獲取客戶端請求頭方式的多樣性。

如通過getheader(string)可以獲取指定請求頭的數據內容:

?
1
2
string connectionstate = request.getheader("connection");
system.out.println(connectionstate);

HttpServletRequest對象簡介_動力節點Java學院整理

而通過getheadernames()可以獲取發送的所有請求頭,例:

?
1
2
3
4
5
6
enumeration e = request.getheadernames();
 while(e.hasmoreelements()) {
    string headername = (string) e.nextelement();
    string headervalue = request.getheader(headername);
    system.out.println(headername+":"+headervalue);
 }

HttpServletRequest對象簡介_動力節點Java學院整理

而通過getheaders(string)方法獲取的是某個同名頭的內容,適用于當某個請求頭有多個內容時使用。

介紹完獲取請求行和請求頭,下面介紹獲取請求數據中內容的方法:

getpatameter(string)

getparameternames()

getparametervalues(string)

getparametermap()

和getinputstream()

使用getpatameter(string)方式可以獲取請求數據中指定的數據值

代碼如下:

?
1
2
string value = request.getparameter("username");
system.out.println(value);

 

常可以在瀏覽器地址url后直接寫入參數數據來模擬get方式:

HttpServletRequest對象簡介_動力節點Java學院整理

最終在控制臺得到:

HttpServletRequest對象簡介_動力節點Java學院整理

通過getparameternames()可以獲取多個參數:

?
1
2
3
4
5
6
enumeration e = request.getparameternames();
 while(e.hasmoreelements()) {
  string paramname = (string)e.nextelement();
  string paramvalue = request.getparameter(paramname);
  system.out.println(paramname+":"+paramvalue);
 }

HttpServletRequest對象簡介_動力節點Java學院整理

HttpServletRequest對象簡介_動力節點Java學院整理

使用getparametervalues(string)有助于獲取當請求數據參數名有相同時的情況:

比如下面這種情況:

HttpServletRequest對象簡介_動力節點Java學院整理

代碼:

?
1
2
3
4
string[] values = request.getparametervalues("username");
  for(int i=0;i<values.length;i++) {
   system.out.println(values[i]);
  }

在控制臺觀察:

  HttpServletRequest對象簡介_動力節點Java學院整理

(注意:像getpatameter(string)、getparametervalues(string)等等這樣的方法,都要小心空指針異常,可能的原因在于并沒有這樣的參數,還有一種就是在url后沒有任何參數傳入,所以要特別注意,應該加入健壯性判斷。這也是編程過程中會碰到傳入參數都應該注意的問題。)

使用getparametermap()可以獲取以請求數據中參數和參數值作為的鍵值對的map集合。這樣我們就能同時獲取鍵值對。假設有如下情況:

HttpServletRequest對象簡介_動力節點Java學院整理

代碼為:

?
1
2
3
4
5
6
7
8
map<string,string[]> map = request.getparametermap();
  for(map.entry<string, string[]> entry :map.entryset()) {
  string paramname = entry.getkey();
  for(int i=0;i<entry.getvalue().length;i++){
   string paramvalue = entry.getvalue()[i];
   system.out.println(paramname+":"+paramvalue);
  }
 }

如果請求數據參數為:

HttpServletRequest對象簡介_動力節點Java學院整理

那么在控制臺上看到的則是:

HttpServletRequest對象簡介_動力節點Java學院整理

以上說明了常用的獲取數據的方式,還有一種屬于request響應對象的getinutstream方法,而這個方法一般只用于大容量的數據獲取,比如文件上傳,將在之后的篇章中介紹。

下面介紹其他常用方法

通過getrequesturi方法和getrequesturl可以獲取http請求服務器資源的uri和url,關于uri和url的區別可以通過獲取后的字符串來查看:

代碼:

?
1
2
3
4
5
string fileuri = request.getrequesturi();
system.out.println("uri: "+fileuri);
 
stringbuffer fileurl = request.getrequesturl();
system.out.println("url: "+fileurl.tostring());

訪問該servlet,得到:

HttpServletRequest對象簡介_動力節點Java學院整理

可以看出uri只包括在服務器中的web應用名和資源對外訪問路徑(虛擬目錄)。

通過getquerystring()方法可以獲取url上由get方式帶來的參數:

若代碼為:

?
1
system.out.println(request.getquerystring());

而我在訪問這個servlet的url上添加:“?username=fjdingsd&password=123”:

HttpServletRequest對象簡介_動力節點Java學院整理

那么當訪問這個servlet之后,在myeclipse的控制臺將看到:

HttpServletRequest對象簡介_動力節點Java學院整理

通過getremoteaddr方法可以獲取訪問該web應用的客戶端ip地址。

代碼:

?
1
system.out.println(request.getremoteaddr());

而通過getremotehost方法獲取的是訪問該web應用的客戶端主機名,如果沒有在dns服務器上注冊的則是獲取ip地址。這里說的主機名是指在dns上注冊的,比如www.baidu.com,那么通過該方法如果從該主機上來訪問,則獲取到的是:baidu.com。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 肉文小说| 欧美男男gaysgays | 无遮挡h肉动漫在线观看电车 | 五月性 | 国产一区二区三区日韩 | 我的男友是消防员在线观看 | 免费三及片| 久久天天综合 | 校花小雪灌满了男人们的浓浆 | 乌克兰肥熟 | 人禽l交视频在线播放 视频 | 美女黄金大片视频免费看 | 国产亚洲精品久久yy5099 | 成人精品mv视频在线观看 | 加勒比一本大道在线 | 激情图片 激情小说 | 99热er| 日b视频免费 | 国产成人精品午夜在线播放 | 欧美日韩精品一区二区三区高清视频 | 午夜福利体检 | 国产偷窥女洗浴在线观看亚洲 | 99久久精品免费看国产高清 | 欧美成人福利视频 | 亚洲AV蜜桃永久无码精品无码网 | 色综合视频一区二区观看 | 激情视频激情小说 | 九九热视频 这里有精品 | 丰满大屁股美女一级毛片 | 校花小雪灌满了男人们的浓浆 | 91李宗精品72集在线观看 | hd性欧美俱乐部中文 | 免费一级欧美大片在线观看 | 青青在线视频免费 | 欧美久久一区二区三区 | 办公室恋情在线观看 | 1024亚洲精品国产 | 亚洲AV 中文字幕 国产 欧美 | 午夜亚洲WWW湿好爽 午夜想想爱午夜剧场 | 国产成人久久精品区一区二区 | 亚洲a视频在线观看 |