首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> ASP.NET 基礎 >> ASP.NET 基礎

ASP.NET Request 物件核心屬性、方法與實戰應用詳解

     編輯:ASP.NET 基礎

Request 物件定位

HttpRequest 封裝客戶端 HTTP 請求,提供表單資料、查詢字串、Cookie、伺服器變數、上傳檔案、瀏覽器資訊等存取管道。

主要屬性速查

讀取表單資料四種方式比較

  1. Request.Form["key"] — 僅 POST,明確語意。
  2. Request.QueryString["key"] — 僅 GET。
  3. Request.Params["key"] — 合併搜尋,**優先順序:QueryString → Form → Cookies → ServerVariables**,同名鍵易誤讀,**不建議常用**。
  4. 伺服器控制項屬性 — txtName.Text,最直觀、強型別、自動處理驗證,**首選方式**。

查詢字串來源與讀取

產生來源:<form method="get">、超連結 href="page.aspx?id=1"、Response.Redirect("page.aspx?id=1")、瀏覽器手動輸入。
統一以 Request.QueryString["key"] 或 Request["key"] 讀取。

伺服器環境變數

Request.ServerVariables["KEY"] 常用鍵值:

屬性用途
FormPOST 表單集合
QueryStringGET 查詢字串集合
ParamsQueryString+Form+Cookies+ServerVariables 合併集合
Cookies客戶端 Cookie 集合
Files上傳檔案集合 (HttpFileCollection)
ServerVariables伺服器環境變數 (HTTP Header 等)
Browser瀏覽器能力物件 (HttpBrowserCapabilities)
Url / UrlReferrer請求 URL / 來源頁 URL
UserHostAddress客戶端 IP
HttpMethod"GET" / "POST" 等
ApplicationPath應用程式虛擬根路徑
鍵含義
REMOTE_ADDR客戶端 IP
LOCAL_ADDR伺服器 IP
HTTP_USER_AGENT瀏覽器 User-Agent 字串
HTTP_REFERER來源頁 URL (可偽造)
SERVER_NAME伺服器主機名
URL請求虛擬路徑

瀏覽器偵測

透過 Request.Browser 取得 HttpBrowserCapabilities:

string browser = Request.Browser.Browser;      // "Chrome", "IE", "Firefox"
string version = Request.Browser.Version;      // "98.0.4758.102"
string platform = Request.Browser.Platform;    // "WinNT"
bool isMobile = Request.Browser.IsMobileDevice;
bool supportsJs = Request.Browser.JavaScript;
bool supportsCookies = Request.Browser.Cookies;

Cookie 讀取與寫入分工

  • 讀取:Request.Cookies["name"] → HttpCookie 物件 → .Value 或 ["subKey"]。
  • 寫入:Response.Cookies["name"].Value = "val" 或 Response.Cookies.Add(new HttpCookie(...))。

關鍵差異:Request 只能讀取瀏覽器送來的 Cookie;Response 寫入的 Cookie 會在**下一次請求**才出現在 Request 中。

實務範例:記住登入帳號

// 登入按鈕 Click
if (txtUser.Text=="admin" && txtPwd.Text=="123")
{
    Response.Cookies["UserName"].Value = txtUser.Text;
    Response.Cookies["Password"].Value = txtPwd.Text;
    if (ddlRemember.SelectedValue=="Forever")
    {
        Response.Cookies["UserName"].Expires = DateTime.MaxValue;
        Response.Cookies["Password"].Expires = DateTime.MaxValue;
    }
}

// Page_Load 自動填入
if (!IsPostBack)
{
    if (Request.Cookies["UserName"] != null)
        txtUser.Text = Request.Cookies["UserName"].Value;
}

結語

Request 物件是伺服器端感知客戶端的唯一窗口。熟悉其屬性分類、集合搜尋順序、瀏覽器偵測與 Cookie 讀寫分工,能避免常見的「抓不到值」、「編碼錯誤」、「瀏覽器相容」等坑。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved