request: 用來訪問任何客戶端用 HTML 請(qǐng)求傳遞的信息,包括使用 POST 方法傳遞的參數(shù)或利用 GET 方法送出的請(qǐng)求以及用戶端瀏覽器送出的 cookie 和 server 變量集合中大量的標(biāo)準(zhǔn)信息。
使用格式:
resquest.cookies ( cookie 名) ’ 獲得用戶端存儲(chǔ)的信息
request.form( “數(shù)據(jù)項(xiàng)名” ) ‘ 獲得用戶端在表單中所填的信息, post 方法提交
request.querystring( “數(shù)據(jù)項(xiàng)名” ) ‘ 獲得用戶端在表單中所填的信息, get 方法提交
request.servervariables(“ 環(huán)境變量名 ’) ‘提供隨 http 請(qǐng)求一起傳遞的 http 頭信息,包括環(huán)境變量。
相關(guān):response 、request 、session、 application、 serve
request這個(gè)對(duì)象不用事先宣告,就可以在JSP網(wǎng)頁(yè)中使用,在轉(zhuǎn)譯為Servlet之后,它會(huì)轉(zhuǎn)換為javax.servlet.http.HttpServletRequest型態(tài)的對(duì)象,HttpServletRequest對(duì)象是有關(guān)于客戶端所發(fā)出的請(qǐng)求之對(duì)象,只要是有關(guān)于客戶端請(qǐng)求的信息,都可以藉由它來取得,例如請(qǐng)求標(biāo)頭、請(qǐng)求方法、請(qǐng)求參數(shù)、使用者IP等等信息。
request的主要方法:
getParameterNames():取得客戶端所發(fā)出的請(qǐng)求參數(shù)名稱.
getParameter():可以讓您指定請(qǐng)求參數(shù)名稱,以取得對(duì)應(yīng)的設(shè)定值.
getServerName():請(qǐng)求的服務(wù)器.
getProtocol():使用協(xié)議.
getMethod():請(qǐng)求方法.
getServerPort():請(qǐng)求端口號(hào).
getContextPath():Context路徑.
getServletPath(): Servlet路徑.
getRequestURI():URI路徑.
getQueryString():查詢字符串.
getRemoteAddr():使用者主機(jī)IP.
getRemotePort():使用者使用端口號(hào).
例子:
http://localhost:8080/myjsp/requestdemo.jsp?name=john&nick=johncn
對(duì)應(yīng)的信息為:
請(qǐng)求的服務(wù)器: localhost
使用協(xié)議: HTTP/1.1
請(qǐng)求方法: GET
請(qǐng)求的端口號(hào): 8080
Context路徑: /myjsp
Servlet路徑: /requestdemo.jsp
URI路徑: /myjsp/requestdemo.jsp
查詢字符串: name=john&nick=johncn
使用者主機(jī)IP: 127.0.0.1
使用者使用端口號(hào): 1060
ASP中的Request 對(duì)象
Request 對(duì)象
可以使用 Request 對(duì)象訪問任何基于 HTTP 請(qǐng)求傳遞的所有信息,包括從 HTML 表格用 POST 方法或 GET 方法傳遞的參數(shù)、cookie 和用戶認(rèn)證。Request 對(duì)象使您能夠訪問客戶端發(fā)送給服務(wù)器的二進(jìn)制數(shù)據(jù)。
Request 的語法 :
Request[. 集合 | 屬性 | 方法 ]( 變量 )
在這里作者將挑選一些常用的對(duì)象語法進(jìn)行分析
1、Form
Form 集合通過使用 POST 方法的表格檢索郵送到 HTTP 請(qǐng)求正文中的表格元素的值。
語法
Request.Form(element)[(index)|.Count]
參數(shù)
element 指定集合要檢索的表格元素的名稱。
index 可選參數(shù),使用該參數(shù)可以訪問某參數(shù)中多個(gè)值中的一個(gè)。它可以是 1 到 Request.Form(parameter).Count 之間的任意整數(shù)。
Count 集合中元素的個(gè)數(shù)
Form 集合按請(qǐng)求正文中參數(shù)的名稱來索引。Request.Form(element) 的值是請(qǐng)求正文中所有 element 值的數(shù)組。通過調(diào)用 Request.Form(element).Count 來確定參數(shù)中值的個(gè)數(shù)。如果參數(shù)未關(guān)聯(lián)多個(gè)值,則計(jì)數(shù)為 1。如果找不到參數(shù),計(jì)數(shù)為 0。要引用有多個(gè)值的表格元素中的單個(gè)值,必須指定 index 值。index 參數(shù)可以是從 1 到 Request.Form(element).Count 中的任意數(shù)字。如果引用多個(gè)表格參數(shù)中的一個(gè),而未指定 index 值,返回的數(shù)據(jù)將是以逗號(hào)分隔的字符串。
可以使用重述符來顯示表格請(qǐng)求中的所有數(shù)據(jù)值。例如,用戶通過指定幾個(gè)值填寫表格,見下圖。
對(duì)于 hobby 參數(shù),您可以使用下面的腳本檢索這些值!
< html>
。 head>< title>< /title>< /head> < body>
< p> 請(qǐng)?zhí)顚懩愕膼酆?< /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=" 發(fā)送 " 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 文件并運(yùn)行,request 對(duì)象可以根據(jù)你在 form 中填入或選擇元素內(nèi)容的不同將元素逐個(gè)顯示出來。
當(dāng)然使用 For...Next 循環(huán)也可以生成同樣的輸出,如下所示 :
。 %
For i = 1 To Request.Form("hobby").Count<
Response.Write Request.Form("hobby")(i) & "< BR>"Next<
%>
【ASP中,Request 對(duì)象獲取數(shù)據(jù)的3種方法:】
1.Request.Form:獲取以POST方式提交的數(shù)據(jù)(接收Form提交來的數(shù)據(jù));
2.Request.QueryString:獲取地址欄參數(shù)(以及以GET方式提交的數(shù)據(jù))
3.Request:包含以上兩種方式(優(yōu)先獲取GET方式提交的數(shù)據(jù)),它會(huì)在QueryString、Form、ServerVariable中都搜尋一遍。
而且有時(shí)候也會(huì)得到不同的結(jié)果。如果你僅僅是需要Form中的一個(gè)數(shù)據(jù),但是你使用了Request而不是Request.Form,那么程序?qū)⒃赒ueryString、ServerVariable中也搜尋一遍。如果正好你的QueryString或者ServerVariable里面也有同名的項(xiàng),你得到的就不是你原本想要的值了。
【asp中,request.form與request.querystring的比較】
。薄(duì)于post傳值的方法,采用request.form接受,他的參數(shù)值不會(huì)在url中用明文方式顯示,且長(zhǎng)度不受限制,安全性相對(duì)較高;
。病et方法遞交的表單或通過url傳值采用request.querystring進(jìn)行獲值的方法,(1)參數(shù)值明碼顯示(2)長(zhǎng)度受限;優(yōu)點(diǎn):(1)方便可以直接定義一個(gè)url就可以傳值;作用:常用與數(shù)據(jù)庫(kù)中的文章id傳值,進(jìn)行數(shù)據(jù)庫(kù)的查詢;