複製鏈接
請複製以下鏈接發送給好友

Request

(計算機專業術語)

鎖定
request這個對象不用事先聲明,就可以在JSP網頁中使用,在編譯為Servlet之後,它會轉換為javax.servlet.http.HttpServletRequest形態的對象,HttpServletRequest對象是有關於客户端所發出的請求的對象,只要是有關於客户端請求的信息,都可以藉由它來取得,例如請求標頭、請求方法、請求參數、客户端IP,客户端瀏覽器等等信息。
外文名
Request
使用協議
HTTP/1.1
請求方法
GET
使用者主機IP
127.0.0.1

Request主要方法

主要方法
getParameterNames()
取得客户端所發出的請求參數名稱
getParameter()
可以讓您指定請求參數名稱,以取得對應的設定值
getServerName()
請求的服務器
getProtocol()
使用協議
getMethod()
請求方法
getServerPort()
請求端口號
getContextPath()
Context路徑
getServletPath()
Servlet路徑
getRequestURI()
URI路徑
getQueryString()
查詢字符串
getRemoteAddr()
使用者主機IP.
getRemotePort()
使用者使用端口號

Request舉例示範

http://localhost:8080/myjsp/requestdemo.jsp?name=john&nick=johncn
對應的信息
請求的服務器
localhost
使用協議
HTTP/1.1
請求方法
GET
請求的端口號
8080
Context路徑
/myjsp
Servlet路徑
/requestdemo.jsp
URI路徑
/myjsp/requestdemo.jsp
查詢字符串
name=john&nick=johncn
使用者主機IP
127.0.0.1
使用者使用端口號
1060

Request對象

Request 對象
可以使用 Request 對象訪問任何基於 HTTP 請求傳遞的所有信息,包括從 HTML 表格用 POST 方法或 GET 方法傳遞的參數、cookie 和用户認證。Request 對象使您能夠訪問客户端發送給服務器的二進制數據。
Request 的語法 :
Request[. 集合 | 屬性 | 方法 ]( 變量 )
在這裏作者將挑選一些常用的對象語法進行分析
1、Form
Form 集合通過使用 POST 方法的表格檢索郵送到 HTTP 請求正文中的表格元素的值。
語法
Request.Form(element)[(index)|.Count]
參數
element 指定集合要檢索的表格元素的名稱。
index 可選參數,使用該參數可以訪問某參數中多個值中的一個。它可以是 1 到 Request.Form(parameter).Count 之間的任意整數。
Count 集合中元素的個數
Form 集合按請求正文中參數的名稱來索引。Request.Form(element) 的值是請求正文中所有 element 值的數組。通過調用 Request.Form(element).Count 來確定參數中值的個數。如果參數未關聯多個值,則計數為 1。如果找不到參數,計數為 0。要引用有多個值的表格元素中的單個值,必須指定 index 值。index 參數可以是從 1 到 Request.Form(element).Count 中的任意數字。如果引用多個表格參數中的一個,而未指定 index 值,返回的數據將是以逗號分隔的字符串。
可以使用重述符來顯示錶格請求中的所有數據值。例如,用户通過指定幾個值填寫表格。
對於 hobby 參數,您可以使用下面的腳本檢索這些值。
< html>
< head>< title>< /title>< /head>  < body>
< p> 請填寫你的愛好 < /p>
< form method="POST" action="form.asp">
< p>< input type="text" name="hobby" size="20">< br>
< input type="checkbox" name="hobby" value=" 足球 "> 足球 < input type="checkbox"  name="hobby" value=" 乒乓球 "> 乒乓球 < /p>
< p>< input type="submit" value=" 發送 " name="B1">< input type="reset" value=" 重填 "  name="B2">< /p>
< /form>
< %  For Each i In Request.Form("hobby")  Response.Write i & "< BR>"  Next  %>
< /body>< /html>
將以上代碼剪貼到記事簿中(注意將“< ”後面的空格去掉),保存為 form.asp 文件並運行,request 對象可以根據你在 form 中填入或選擇元素內容的不同將元素逐個顯示出來。
當然使用 For...Next 循環也可以生成同樣的輸出,如下所示 :
< %
For i = 1 To Request.Form("hobby").Count<
Response.Write Request.Form("hobby")(i) & "< BR>"Next<
%>
方法
【ASP中,Request 對象獲取數據的3種方法:】
1.Request.Form:獲取以POST方式提交的數據(接收Form提交來的數據);
2.Request.QueryString:獲取地址欄參數(以及以GET方式提交的數據)
3.Request:包含以上兩種方式(優先獲取GET方式提交的數據),它會在QueryString、Form、ServerVariable中都搜尋一遍。
而且有時候也會得到不同的結果。如果你僅僅是需要Form中的一個數據,但是你使用了Request而不是Request.Form,那麼程序將在QueryString、ServerVariable中也搜尋一遍。如果正好你的QueryString或者ServerVariable裏面也有同名的項,你得到的就不是你原本想要的值了。
比較
【asp中,request.form與request.querystring的比較】
1、對於post傳值的方法,採用request.form接受,他的參數值不會在url中用明文方式顯示,且長度不受限制,安全性相對較高;
2、get方法遞交的表單或通過url傳值採用request.querystring進行獲值的方法,(1)參數值明碼顯示(2)長度受限;優點:(1)方便可以直接定義一個url就可以傳值;作用:常用與數據庫中的文章id傳值,進行數據庫的查詢;

Request屬性

request.params是一個集合,它依次包括request.querystring、request.form、request.cookies和request.servervariables。
如果要在兩個頁面傳遞數據的話,只能用request.querystring、request.form、request.cookies
Request.Params 會在 QueryString、Form、Server Variable 以及 Cookies 找數據,
他首先在 QueryString 集合查找數據,如果在 QueryString 找到數據,就返回數據,如果沒有找到就去 Form 集合中查找數據,找到就返回,否則在往下一下個集合查找數據。
Request.Params["id"]
Request.Form["id"]
Request.QueryString["id"]
Request.QueryString["id"]
Request.Params是所有post和get傳過來的值的集合,Request.Form是取post傳值, Request.QueryString是get傳過來的值