>  기사  >  백엔드 개발  >  Asp.net 내장 개체 요청 개체 사용 예 요약

Asp.net 내장 개체 요청 개체 사용 예 요약

零下一度
零下一度원래의
2017-05-23 11:45:372784검색

요청 개체는 주로 사용자가 입력한 데이터, 클라이언트에 저장된 쿠키 등 클라이언트로부터 데이터를 가져오는 데 사용됩니다. 이 글에서는 요청 개체에 중점을 두고 주요 기능인 양식 변수 읽기에 대해 설명합니다. 문자열 변수를 읽어 웹 서버의 시스템 정보를 얻습니다. 클라이언트 브라우저 정보 등을 얻습니다. 관심 있는 친구는

머리말:
에 대해 알아볼 수 있습니다. 요청 개체는 주로 사용자가 양식을 작성하는 것과 같이 클라이언트로부터 데이터를 얻는 데 사용됩니다. . 클라이언트에 저장된 데이터, 쿠키 등

1. Request 객체 개요

1. 주요 속성

 ApplicationPath  获取服务器上asp.net应用程序的虚拟应用程序根路径
 Browser  获取有关正在请求的客户端的浏览器功能的信息,该属性值为:HttpBrowserCapabilities对  象
 ContentEncoding  获取或设置实体主体的字符集。该属性值为表示客户端的字符集Encoding对象
 ContentLength  指定客户端发送的内容长度,以字节为单位 
 ContentType  获取或设置传入请求的MIME内容类型。
 Cookies  获取客户端发送的Cookie集合,该属性值为表示客户端的Cookie变量的  HttpCookieCollection对象
 CurrentExecutionFilePath  获取当前请求的虚拟路径
 FilePath  获取当前请求的虚拟路径
 Files  获取客户端上载的文件集合。该属性值为HttpFileCollection对象,表示客户端上载的文件集合
 Form  获取窗体变量集合
 HttpMethod  获取客户端使用的HTTP数据传输方法(如:get、post或head)
 Item  获取Cookies、Form、QueryString或ServerVariables集合中指定的对象
 Params  获取Cookies、Form、QueryString或ServerVariables项的组合集合
 Path  获取当前请求的虚拟路径
 PathInfo  获取具有URL扩展名的资源的附加路径信息
 PhysicalApplicationPath  获取当前正在执行的服务器应用程序的根目录的物理文件系统路径
 PhysicalPath  获取与请求的URL相对应的物理文件路径
 QueryString  获取HTTP查询字符串变量集合。该属性值为:NameValueCollection对象,它包含由客户端发送的查询字符串变量集合
 RequestType  获取或设置客户端使用HTTP数据传输的方式(get或post)
 ServerVariables  获取Web服务器变量的集合
 TotalBytes  获取当前输入流的字节数
 Url  获取有关当前请求URL的信息
 UserHostAddress  获取远程客户端的IP主机地址
   

2. 메인 메소드

(1) MapPath(VirtualPath): 현재 요청된 URL의 가상 경로 virtualPath를 서버의 물리적 경로에 매핑합니다. virtualPath 매개변수는 현재 요청의 가상 경로(절대 경로 또는 상대 경로)를 지정합니다. 이 메서드의 반환 값은 virtualPath로 지정된 서버의 물리적 경로입니다.

(2)SaveAs(파일 이름, includeHeaders): http 요청을 디스크에 저장합니다. 매개변수 filename은 물리적 드라이브 경로를 지정하고 includeHeaders는 HTTP 헤더를 디스크에 저장해야 하는지 여부를 지정하는 부울 값입니다.

2. 요청 객체 적용

1. 양식 변수를 읽는 네 가지 방법 :

(1) 사용 Request.Form 속성을 사용하여 양식 변수를 읽습니다
(2). Request.QueryString 속성을 사용하여 양식 변수를 읽습니다
(3). Request.Params 속성을 사용하여 양식 변수를 읽습니다
(4 ). 서버 컨트롤

의 속성을 통해 직접 양식 변수를 읽습니다. (1) HtmlForm 컨트롤의 양식 변수

Method 속성을 읽으려면 Request.Form 속성을 사용합니다. 기본값은 포스트입니다. 이 경우 사용자가 웹 페이지를 제출하면 양식 데이터가 HTTP 헤더 형식으로 서버 측으로 전송됩니다. 이 시점에서 Request 개체의 Form 속성을 사용하여 양식 변수를 읽을 수 있습니다. 예: txtUserName 및 txtPassword의 텍스트 상자 컨트롤에서 해당 값은 다음 형식으로 읽을 수 있습니다: Request.Form["txtUserName"] ;Request.Form["txtPassword"]

(2) 요청 사용 .QueryString 속성은

양식 변수를 읽습니다. HtmlForm 컨트롤의 Method 속성이 get으로 설정된 경우 사용자가 웹 페이지를 제출하면 양식 데이터가 URL에 추가되어 다음으로 전송됩니다. 서버. 이 경우 Request 개체의 QueryString 속성을 사용하여 양식 변수를 읽을 수 있습니다. Request.QueryString["txtUserName"] ;Request.QueryString["txtPassword"]

(3) Request.Params 속성을 사용하여 양식 변수를 읽습니다.

HtmlForm 컨트롤은 값이므로 Request 개체의 Params 속성을 사용하여 Request.Params["txtPassword"] 또는 Request.["txtPassword"]와 같은 양식 변수의 내용을 읽을 수 있습니다. GET 메서드로 제출된 데이터는 다음과 같습니다. 우선순위가 주어지면 QueryString, Form, ServerVariable 순으로 검색됩니다.

요청: 위의 두 가지 방법이 포함되어 있습니다(GET 방법으로 제출된 데이터를 먼저 가져옴). QueryString, Form, ServerVariable을 순서대로 검색합니다. Request.Params는 post와 get으로 전달되는 모든 값의 모음입니다. request.params는 실제로 request.QueryString, request.Form, request.cookies, request.ServerVariable을 포함하는 모음입니다.

참고: Request.Params를 사용할 때는 이러한 컬렉션 항목 중 동일한 이름을 가진 항목을 포함하지 않는 것이 가장 좋습니다. 양식에 데이터 일부만 필요하지만 Request.Form 대신 Request를 사용하는 경우 프로그램은 QueryString 및 ServerVariable에서도 검색합니다. QueryString 또는 ServerVariable에 동일한 이름을 가진 항목이 있는 경우 얻는 값은 원하는 값이 아닙니다.

(4) 서버 컨트롤의 속성을 통해 폼 변수 직접 읽기

위의 세 가지 방법 외에도 서버 컨트롤의 속성을 통해 폼 변수를 직접 읽을 수도 있습니다. 이는 양식 데이터를 얻는 가장 일반적이고 간단한 방법입니다. 예: txtUserName.Text

2. 쿼리 문자열 변수 읽기

웹을 탐색할 때 브라우저 주소 표시줄에 "xxx.aspx?id=8018"과 같은 URL이 표시되는 경우가 많습니다. 여기서 xxx.aspx는 방문을 원한다는 의미입니다. .aspx 웹 페이지에서 물음표(?)가 뒤따르는 내용은 쿼리 문자열이며, 해당 기능은 처리를 위해 변수의 이름과 값을 이 ASP.NET 파일로 전송하는 것입니다. 쿼리 문자열 변수는 여러 가지 방법으로 생성될 수 있습니다.

(1) HtmlForm 컨트롤의 Method 속성이 get으로 설정된 경우 사용자가 웹 페이지를 제출하면 양식 데이터가 쿼리 문자열 변수로 URL에 첨부되어 섬기는 사람.
(2) 3499910bf9dac5ae3c52d5ede7383485…5db79b134e9f6b82c0b36e0489ee08ed 태그 또는 HyperLink 컨트롤을 사용하여 하이퍼텍스트 링크를 생성할 때 대상 URL 뒤에 쿼리 문자열을 넣고 "?" URL과 쿼리 문자열을 분리합니다
(3). Response.Redirect 메소드를 호출할 때 URL 매개변수에 변수 이름/값 쌍이 첨부되어 있으면 이러한 변수 값이 URL에 첨부되어 대상 웹페이지가 열릴 때 서버.
(4). 브라우저 주소창에 요청 URL을 입력할 때, URL 뒤에 물음표 "?"를 입력하세요. 예: http://…/t.aspx?Id=8018

위의 상황에서는 Request.QueryString 속성을 통해 쿼리 문자열 변수를 검색할 수 있습니다.

다음 코드:

//在登陆页面 protected void Button1_Click(object sender, EventArgs e) { //登陆 //if (txtUserName.Text == "admin" && txtPwd.Text == "123") //{ // Session["Info"] = "随便一个值"; // Response.Redirect("Request2_test.aspx?Info=" + txtUserName.Text); //} //else //{ // Response.Redirect("Request2_test.aspx?error=登陆失败!"); //} /***********************************方法2****************************************/ //或者 if (txtUserName.Text == "admin" && txtPwd.Text == "123") { Response.Redirect("Request2_test.aspx?Info=" + txtUserName.Text + "&check=1"); } else { Response.Redirect("Request2_test.aspx?error=登陆失败!"); } }

인증 페이지에서

코드는 다음과 같습니다:

protected void Page_Load(object sender, EventArgs e) 
{ 
//验证页面 
//if (Session["Info"] != 
null
 && Session["Info"].ToString() == "随便一个值") 
//{ 
// Response.Write("登陆成功!<br>" + Request.QueryString["Info"] + ",欢迎访问本站"); 
// //Response.Write("登陆成功!<br>" + Request["Info"] + ",欢迎访问本站"); 
// //Response.Write("登录成功!<br>"+Request.Form["username"]+",欢迎访问本站"); 
//} 
//else 
//{ 
// Response.Write("登陆失败"); 
//} 
/***************************************方法2**********************************/ 
if (Convert.ToInt32(Request["check"]) == 1) 
{ 
Response.Write("登陆成功!<br>" + Request.QueryString["Info"] + ",欢迎访问本站"); 
} 
else 
{ 
Response.Write("登陆失败"); 
} 
}

3. 웹 서버의 시스템 정보 얻기

Request 개체는 ServerVariables 컬렉션 개체를 사용하여 서버 측 시스템 정보를 저장합니다. 이러한 정보 변수는 HTTP 헤더에 포함되어 HTTP 요청과 함께 전송됩니다. . Request 객체의 ServerVariables 컬렉션 객체를 이용하여 환경변수를 구하는 구문은 다음과 같습니다. Request.ServerVariables[환경변수명]

ServerVariables 컬렉션 객체에 저장되는 공통 정보변수는 다음과 같습니다.

 代码如下:

Response.Write(Request.ServerVariables["LOCAL_ADDR"]);//远端服务器的地址 Response.Write("<br>"); Response.Write(Request.ServerVariables["Remote_ADDR"]);//浏览器所在主机的IP地址 Response.Write("<br>"); Response.Write(Request.Browser.Type.ToString());//浏览器的类型 Response.Write("<br>"); Response.Write(Request.Browser.Platform.ToString());//浏览器所在的平台 Response.Write("<br>"); Response.Write(Request.ServerVariables["url"]);

4.取得客户端浏览器信息

通过Request对象的Browser属性得到。需要利用Browser属性生成一个HttpBrowserCapabilities类型的对象实例。HttpBrowserCapabilities类具有的常用属性如下:

 代码如下:

Response.Write("浏览器的类型是:" + Request.Browser.Browser.ToString()+"<br>"); Response.Write("浏览器的版本是:" + Request.Browser.Version.ToString()+"<br>"); Response.Write("浏览器的所在平台是:" + Request.Browser.Platform.ToString()+"<br>"); Response.Write("浏览器是否支持框架:" + Request.Browser.Frames.ToString()+"<br>"); Response.Write("浏览器是否支持Cookies:" + Request.Browser.Cookies.ToString()+"<br>"); Response.Write("浏览器是否支持Javascript:" + Request.Browser.JavaScript.ToString()+"<br>");

5.读取客户端Cookie

Cookie是在HTTP协议下服务器或脚本可以维护客户工作站上信息的一种方式。Cookie是由Web服务器保存在用户浏览器上的小文本文件,它可以包含有关用户的信息,这些信息以名/值对的形式储存在文本文件中。无论何时,只要用户连接接到服务器,Web站点就可以访问Cookie信息。Cookie保存在用户的Cookie文件中,当下一次用户返回时,仍然可以对它进行调用。

Cookies集合是由一些Cookie对象组成的。Cookie对象的类名为HttpCookie。HttpCookie类的主要属性如下:

使用Cookie时,应注意以下几点

[1].使用Cookie保存客户端浏览器请求服务器页面的请求信息时,保存时间的长短取决于Cookie对象的Expires属性,可以根据需要来设置。若未设置Cookie的失效日期,则它们仅保存到关闭浏览器为止。若将Cookie对象的Expires属性设置为DateTime.MaxValue,则表示Cookie永远不会过期。

[2].Cookie存储的数据量有所限制,大多数浏览器支持的最大容量为4096字节,因此不要用Cookie来保存大量数据。

[3].  并非所有浏览器都支持Cookie,并且数据是以明文形式保存在客户端计算机中,因此最好不要用Cookie来保存敏感的未加密数据。

[4].在ASP.NET中有两个Cookies集合,即:Response对象的Cookies集合和Request对象的Cookies集合,但两者的作用有所不同,通过前者可以将Cookie写入客户端,通过后者可以读取存储在客户端的Cookie。

如下操作:

示例如下:

代码如下:

protected void Page_Load(object sender, EventArgs e) 
{ 
HttpCookie c1=Request.Cookies["UserName"]; 
HttpCookie c2 = Request.Cookies["Password"]; 
if (c1 != null || c2 != null) 
{ 
//当保存完Cookie之后(也就是说"保存或永久保存"),这个才能输出,当第二次用统一浏览器打开该网站的时候就会输出 
Response.Write(c1.Value + "欢迎光临"); 
} 
} 
protected void Button1_Click(object sender, EventArgs e) 
{ 
//提交 
if (TextBox1.Text == "admin" && TextBox2.Text == "123") 
{ 
Response.Write("欢迎光临"+TextBox1.Text); 
Response.Cookies["UserName"].Value = TextBox1.Text; 
Response.Cookies["Password"].Value = TextBox2.Text; 
if (Dro
pDo
wn
List
1.SelectedItem.Text == "永久保存") 
{ 
//默认cookies失效时间是直到关闭浏览器 
//Cookie保存永久 
Response.Cookies["UserName"].Expires = DateTime.MaxValue; 
Response.Cookies["Password"].Expires = DateTime.MaxValue; 
} 
else 
{ 
//Cookie永不保存 
Response.Cookies["UserName"].Expires = DateTime.Now; 
Response.Cookies["Password"].Expires = DateTime.Now; 
} 
} 
}

当我们再次打开该网站(同一浏览器)的时候,就会弹出“admin欢迎光临"

【相关推荐】

1. 谈谈Request和Response这两个对象的使用

2. 分享一个Request对象小案例

3. 分享asp中request对象五个获取客户端资料的方法

4. 详解ASP.NET 系统对象之Request

위 내용은 Asp.net 내장 개체 요청 개체 사용 예 요약의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.