Request請求基礎知識

2021-09-26 14:27:45 字數 3501 閱讀 3725

tomcat伺服器的實際行為:

其中的資源路徑:

正是 @webservlet("/demo3") 中的資源路徑

1.通過該路徑可以載入這個路徑指向的類,並建立該類物件,

2.之後再建立request,response物件,並傳入該類物件的service方法,再執行

-- 其中request物件中封裝了請求資料,response物件中封裝了響應資料,

3.可以使用request獲取請求資料並設定response響應資料,而瀏覽器通過response獲取響應資料

resquestfacad(實現了httpservletrequest介面)

:內部持有org.apache.catalina.connector.request物件

並執行該物件的一系列方法

package  package org.apache.coyote 

:此類不適用於使用者**,由 tomcat 在內部使用:final類

package package org.apache.catalina.connector

:實現了httpservletrequest介面

而這個類內部持有org.apache.coyote.request類物件

並執行該物件的一系列方法

功能:

1.獲取請求資料:

1.獲取請求行資料

2.獲取請求頭資料

3.獲取請求體資料

2.其他:

1.獲取請求引數通用方式

2.請求**

3.共享資料

4.獲取servletcontext

1.獲取請求行資料

獲取請求行資料

請求方式,虛擬目錄,servlet路徑,請求引數,

請求url,協議和版本,客戶機的ip位址

舉例: //http://localhost:8080/webservlet/requestdemo1?age=12

protected void doget(httpservletrequest request, httpservletresponse response) throws servletexception, ioexception

2.獲取請求頭資料

獲取請求頭名稱:request.getheadernames()

host

connection

upgrade-insecure-requests

user-agent

accept

dntaccept-encoding

accept-language

cookie

referer

獲取各自請求頭資訊:request.getheader(name)

string referer = request.getheader("referer");

string uagent = request.getheader("user-agent");

cookie cookies = request.getcookies();

system.out.println("referer:"+referer);

system.out.println("user-agent:"+uagent);

system.out.print("cookies:");

for(cookie c:cookies)

system.out.print(",");

}

3.獲取請求體資料 post方式有效

位元組流:getinputstream();

字元流:getreader();

username=eeee&password=sdfea

舉例:1

bufferedreader reader = request.getreader();

string line = null;

while((line = reader.readline())!= null)

2servletinputstream inputstream = request.getinputstream();

stringbuffer sbuffer = new stringbuffer();

byte bs = new byte[4096];

while(inputstream.read(bs) != -1)

system.out.println(sbuffer.tostring());

2.其他

1.獲取請求引數通用方式

string request.getparameter(name);

string request.getparametervalues(name);

//核取方塊checkbox

maprequest.getparametermap();

//鍵值對

enumeration request.getparameternames();

//獲取名稱,返回值類似迭代器

舉例:

request.setcharacterencoding("utf-8");

mapparametermap = request.getparametermap();

setkeyset = parametermap.keyset();

for (string string : keyset)

system.out.print(",");

} system.out.println();

}

2.請求**

在方法內,已擁有httpservletrequest request, httpservletresponse response 引數

request.getrequestdispatcher("/demo3").forward(request, response);

request.getrequestdispatcher("/index.jsp").forward(request, response);

其中: "/demo3" : 另乙個資源路徑

request: 請求物件

response: 響應物件

3.共享資料 **發到其他servlet獲取資料)

傳送的相當於是鍵值對:

request.setattribute("name", "libai");

request.getattribute("name")

request.removeattribute(name);

4.獲取servletcontext

req.getservletcontext()

網路請求的基礎知識

網路請求的方式分類建立url物件 第1種方法 nsstring string nsstring stringwithcontentsofurl url encoding nsutf8stringencoding error nil 第2種方法 nsdata data nsdata datawithc...

網路基礎知識(http請求)

http請求的過程 tcp的四次揮手 http和https的區別 1.https 需要到ca申請證書 2.http是超文字傳輸協議,資訊是明文傳輸,https則是具有安全性的ssl加密傳輸協議 3.http和https使用埠不一致,前者是80,後者是443 4.http的連線很簡單,是無狀態的。ht...

HTTP基礎知識 http請求與響應

http1.1定義八種的方法 get post put delete patch head options trace 其中最常見的是get 和post 注意到的是如果是我誒resful介面的話一般會用到前四種請求方法。常見的請求header及其作用 在以上的請求頭屬性中,需要注意的是cookie,...