Request(計算機專業術語)

Request(計算機專業術語)

本詞條是多義詞,共4個義項
更多義項 ▼ 收起列表 ▲

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

基本介紹

  • 外文名:Request
  • 使用協定:HTTP/1.1
  • 請求方法:GET
  • 使用者主機IP127.0.0.1
主要方法,舉例示範,ASP對象,Request 對象,參數,方法,比較,屬性,

主要方法

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

舉例示範

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

ASP對象

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.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傳過來的值

相關詞條

熱門詞條

聯絡我們