欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

HttpServletRequest對(duì)象簡(jiǎn)介_(kāi)動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

 更新時(shí)間:2017年07月25日 10:32:24   作者:fjdingsd  
這篇文章主要為大家詳細(xì)介紹了HttpServletRequest對(duì)象簡(jiǎn)介的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

通過(guò)getMethod方法獲得的是客戶端訪問(wèn)該web應(yīng)用的Http請(qǐng)求方式。

代碼和結(jié)果如下:

String requestMethod = request.getMethod();
System.out.println(requestMethod); 

想獲取客戶端發(fā)來(lái)的HTTP請(qǐng)求頭中的內(nèi)容可以使用如下方法:

getDateHeader()

getHeader(String)

getHeaderNames()

getHeaders(String)

getIntHeader(String);

這些方法在各個(gè)特定的情況下能有不同的用途,體現(xiàn)出獲取客戶端請(qǐng)求頭方式的多樣性。

如通過(guò)getHeader(String)可以獲取指定請(qǐng)求頭的數(shù)據(jù)內(nèi)容:

String connectionState = request.getHeader("Connection");
System.out.println(connectionState);

而通過(guò)getHeaderNames()可以獲取發(fā)送的所有請(qǐng)求頭,例:

Enumeration e = request.getHeaderNames();
 while(e.hasMoreElements()) {
    String headerName = (String) e.nextElement();
    String headerValue = request.getHeader(headerName);
    System.out.println(headerName+":"+headerValue);
 }

而通過(guò)getHeaders(String)方法獲取的是某個(gè)同名頭的內(nèi)容,適用于當(dāng)某個(gè)請(qǐng)求頭有多個(gè)內(nèi)容時(shí)使用。

介紹完獲取請(qǐng)求行和請(qǐng)求頭,下面介紹獲取請(qǐng)求數(shù)據(jù)中內(nèi)容的方法:

getPatameter(String)

getParameterNames()

getParameterValues(String)

getParameterMap()

和getInputStream()

使用getPatameter(String)方式可以獲取請(qǐng)求數(shù)據(jù)中指定的數(shù)據(jù)值

代碼如下:

String value = request.getParameter("username");
System.out.println(value);

??梢栽跒g覽器地址URL后直接寫入?yún)?shù)數(shù)據(jù)來(lái)模擬GET方式:

最終在控制臺(tái)得到:

通過(guò)getParameterNames()可以獲取多個(gè)參數(shù):

Enumeration e = request.getParameterNames();
 while(e.hasMoreElements()) {
  String paramName = (String)e.nextElement();
  String paramValue = request.getParameter(paramName);
  System.out.println(paramName+":"+paramValue);
 }

使用getParameterValues(String)有助于獲取當(dāng)請(qǐng)求數(shù)據(jù)參數(shù)名有相同時(shí)的情況:

比如下面這種情況:

代碼:

String[] values = request.getParameterValues("username");
  for(int i=0;i<values.length;i++) {
   System.out.println(values[i]);
  }

在控制臺(tái)觀察:

  

(注意:像getPatameter(String)、getParameterValues(String)等等這樣的方法,都要小心空指針異常,可能的原因在于并沒(méi)有這樣的參數(shù),還有一種就是在URL后沒(méi)有任何參數(shù)傳入,所以要特別注意,應(yīng)該加入健壯性判斷。這也是編程過(guò)程中會(huì)碰到傳入?yún)?shù)都應(yīng)該注意的問(wèn)題。)

使用getParameterMap()可以獲取以請(qǐng)求數(shù)據(jù)中參數(shù)和參數(shù)值作為的鍵值對(duì)的Map集合。這樣我們就能同時(shí)獲取鍵值對(duì)。假設(shè)有如下情況:

代碼為:

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);
  }
 }

如果請(qǐng)求數(shù)據(jù)參數(shù)為:

那么在控制臺(tái)上看到的則是:

以上說(shuō)明了常用的獲取數(shù)據(jù)的方式,還有一種屬于request響應(yīng)對(duì)象的getInutStream方法,而這個(gè)方法一般只用于大容量的數(shù)據(jù)獲取,比如文件上傳,將在之后的篇章中介紹。

下面介紹其他常用方法

通過(guò)getRequestURI方法和getRequestURL可以獲取http請(qǐng)求服務(wù)器資源的URI和URL,關(guān)于URI和URL的區(qū)別可以通過(guò)獲取后的字符串來(lái)查看:

代碼:

String fileURI = request.getRequestURI();
System.out.println("URI: "+fileURI);

StringBuffer fileURL = request.getRequestURL();
System.out.println("URL: "+fileURL.toString());

訪問(wèn)該Servlet,得到:

可以看出URI只包括在服務(wù)器中的web應(yīng)用名和資源對(duì)外訪問(wèn)路徑(虛擬目錄)。

通過(guò)getQueryString()方法可以獲取URL上由GET方式帶來(lái)的參數(shù):

若代碼為:

System.out.println(request.getQueryString());

而我在訪問(wèn)這個(gè)Servlet的URL上添加:“?username=fjdingsd&password=123”:

那么當(dāng)訪問(wèn)這個(gè)Servlet之后,在MyEclipse的控制臺(tái)將看到:

通過(guò)getRemoteAddr方法可以獲取訪問(wèn)該web應(yīng)用的客戶端IP地址。

代碼:

System.out.println(request.getRemoteAddr());

而通過(guò)getRemoteHost方法獲取的是訪問(wèn)該web應(yīng)用的客戶端主機(jī)名,如果沒(méi)有在DNS服務(wù)器上注冊(cè)的則是獲取IP地址。這里說(shuō)的主機(jī)名是指在DNS上注冊(cè)的,比如www.baidu.com,那么通過(guò)該方法如果從該主機(jī)上來(lái)訪問(wèn),則獲取到的是:baidu.com。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Spring 校驗(yàn)(validator,JSR-303)簡(jiǎn)單實(shí)現(xiàn)方式

    Spring 校驗(yàn)(validator,JSR-303)簡(jiǎn)單實(shí)現(xiàn)方式

    這篇文章主要介紹了Spring 校驗(yàn)(validator,JSR-303)簡(jiǎn)單實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-10-10
  • 一篇文章帶你入門Java Script

    一篇文章帶你入門Java Script

    這篇文章主要介紹了新手入門JavaScript的的相關(guān)資料,文中講解非常細(xì)致,代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2021-08-08
  • Spring Security驗(yàn)證流程剖析及自定義驗(yàn)證方法

    Spring Security驗(yàn)證流程剖析及自定義驗(yàn)證方法

    Spring Security是一個(gè)能夠?yàn)榛赟pring的企業(yè)應(yīng)用系統(tǒng)提供聲明式的安全訪問(wèn)控制解決方案的安全框架。這篇文章主要介紹了Spring Security驗(yàn)證流程剖析及自定義驗(yàn)證方法,需要的朋友可以參考下
    2018-03-03
  • springboot?vue接口測(cè)試HutoolUtil?TreeUtil處理樹(shù)形結(jié)構(gòu)

    springboot?vue接口測(cè)試HutoolUtil?TreeUtil處理樹(shù)形結(jié)構(gòu)

    這篇文章主要介紹了springboot?vue接口測(cè)試HutoolUtil?TreeUtil處理樹(shù)形結(jié)構(gòu),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-05-05
  • Spring中bean標(biāo)簽的用法詳解

    Spring中bean標(biāo)簽的用法詳解

    Bean標(biāo)簽一般用于配置對(duì)象交由Spring?來(lái)創(chuàng)建,這篇文章主要來(lái)和大家詳細(xì)聊聊Spring中bean標(biāo)簽的用法,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-06-06
  • springboot+webmagic實(shí)現(xiàn)java爬蟲(chóng)jdbc及mysql的方法

    springboot+webmagic實(shí)現(xiàn)java爬蟲(chóng)jdbc及mysql的方法

    今天小編就為大家分享一篇springboot+webmagic實(shí)現(xiàn)java爬蟲(chóng)jdbc及mysql的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-08-08
  • 淺談java 重寫equals方法的種種坑

    淺談java 重寫equals方法的種種坑

    這篇文章主要介紹了淺談java 重寫equals方法的種種“坑”,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-01-01
  • SpringBoot用JdbcTemplates操作Mysql實(shí)例代碼詳解

    SpringBoot用JdbcTemplates操作Mysql實(shí)例代碼詳解

    JdbcTemplate是Spring框架自帶的對(duì)JDBC操作的封裝,目的是提供統(tǒng)一的模板方法使對(duì)數(shù)據(jù)庫(kù)的操作更加方便、友好,效率也不錯(cuò),這篇文章主要介紹了SpringBoot用JdbcTemplates操作Mysql
    2022-10-10
  • Java中多態(tài)性的實(shí)現(xiàn)方式

    Java中多態(tài)性的實(shí)現(xiàn)方式

    這篇文章主要介紹了Java中多態(tài)性的實(shí)現(xiàn)方式,什么是多態(tài)?通過(guò)簡(jiǎn)單的一道題目幫大家理解java多態(tài)性,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-09-09
  • java實(shí)現(xiàn)收藏功能

    java實(shí)現(xiàn)收藏功能

    這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)收藏功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-08-08

最新評(píng)論