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