码迷,mamicode.com
首页 > Web开发 > 详细

动态网站开发技术学习4:ASP.NET内置对象之Request对象

时间:2015-11-25 11:03:44      阅读:262      评论:0      收藏:0      [点我收藏+]

标签:

        Request对象的作用是与客户端交互,收集客户端的Form、Cookies、超链接,或者收集服务器端的环境变量。

request对象是从客户端向服务器发出请求,包括用户提交的信息以及客户端的一些信息。客户端可通过HTML表单或

在网页地址后面提供参数的方法提交数据,然后通过request对象的相关方法来获取这些数据。request的各种方法主

要用来处理客户端浏览器提交的请求中的各项参数和选项。

        Request对象用于封装客户端请求信息,检索浏览器向服务器发送的消息。当用户访问网站时,服务器从用户端

获取相关信息,也可以说用户向服务器发送请求,要求其响应操作。Request对象最大的用途在于提交表单信息,可

获取页面间传递的值,客户端浏览器的信息,客户端的IP地址以及当前页面的路径等。基本用户是读取对象或参数的内容。

       Request对象的常用属性:

技术分享

       Request对象的常用方法:

技术分享

       一获取页面间传送的值

       获取页面传送参数值是Request对象最广泛的应用之一。ASP.NET可根据所获取的参数执行不同的程序操作。页

面间传递参数常常通过超链接来实现的,基本语法结构如下:

       Url?VariableName1=value1&VariableName2=value2;

      上面的代码中Url为页面的网址,VariableName1为页面的传递变量,value1与value2为变量值,&符号是多参数的

连接符号。即有两个以上传递变量时,用&符号进行连接。进行页面传递参数,默认数据类型是字符串。即使是数值

型也默认为字符串。

       获取页面传递参数值有四种方法:

       (1)方法一:Request.QueryString["VariableName"];

       用来获取客户端通过GET方式传送的数据。GET方式将传送的值显示在浏览器的地址栏中,安全性比较低,但效

率比较高,适用于比较简单的数值。参数VariableName为页面传递的变量名或控件名。

       (2)方法二:Request.Form["VariableName"];

       用来获取客户端通过POST方式提交的数据。POST方式传递的值在地址栏中看不到,安全性较高,但效率比较

低,可以传送的数据大小没有限制。

       (3)方法三:Request["VariableName"];

       获取客户端通过GET或POST方式提交的数据。

       (4)方法四:Request.Params["VariableName"]

       获取客户端通过GET或POST方式提交的数据。

      上面一直提到客户端的提交方式GET方法和POST方法,这两个表单提交方式我已经详细的区别过,可以参考的

博文为:HTML学习11:HTTP 方法。详细的了解也可以百度!

       实例:主要通过Request对象的不同属性实现获取请求页的值

       程序实现的主要步骤:

       (1)新建一个网站,默认主页为Default.aspx。在页面上添加一个Button控件,ID属性设置为"btnRedirect",Text属

设置为"跳转"。在按钮的btnRedirect_Click事件中实现页面跳转并传值的功能。

       Default.aspx的代码:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-
transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>

         按下下面的按钮,跳转到你所重定向的页面<br />
          
         <asp:Button ID="btnRedirect" runat="server" Text="跳转" 
            onclick="btnRedirect_Click" />
    
    </div>
    </form>
</body>
</html>

       Default.aspx.cs代码如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {

    }
    protected void btnRedirect_Click(object sender, EventArgs e)
    {
        //通过页面重定向的方法跳转到Request.aspx页面
        Response.Redirect("Request.aspx?value=获得GET方式页面传送的值");
    }
}

       (2)在该网站中,添加一个新页,将其命名为Request.aspx。在页面Request.aspx的初始化事件中用不同获取GET

方法获取Response对象传递过来的参数,并将其输出在页面上。

       Request.aspx代码如下:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Request.aspx.cs" Inherits="Request" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div style="color:Red;font-size:24px;">
    这是页面重定向跳转的页面!!!
    </div>
    </form>
</body>
</html>
       Request.aspx.cs代码如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class Request : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        //通过GET方法提交页面传送的值
        Response.Write("使用Request.QueryString[stringkey]方法" + Request.QueryString["value"] + "<br/>");
        Response.Write("使用Request[string key]方法"+Request["value"]+"<br/>");  
        Response.Write("使用Request.Params[string key]方法"+ Request.Params["value"] + "<br/>");  
    }
}

       运行结果:

技术分享

       点击按钮后:

技术分享

       二获取客户端信息

       语法结构:

       (1)获取客户端浏览器信息

       在访问Web站点时,服务器通常会记录客户端的一些信息,例如浏览器的类型,名称,版本,操作平台等,可通

过Request.Brower来获取。

       (2)获取客户端的IP地址

       方法一:通过Request.UserHostAddress获取。

       方法二:通过Request.ServerVariables["REMOTE_ADDR"]获取。

       (3)获取当前页面的路径

       通过Request.CurrentExecutionFilePath获取当前页面的虚拟路径。

       通过Request.PhysicalPath获取当前页面的物理路径。

       虚拟路径采用正斜杠“/”,而物理路径采用反斜杠“\”。虚拟路径和物理路径我们在后面会有详细的介绍。

       实例:主要通过Request对象的Browser属性获取客户端一些信息。

       程序实现的主要步骤:

       (1)新建一个网站,默认主页为Default.aspx。在页面的设计视图添加三个Button控件,设置它们的text属性分别

为:获取客户端浏览器信息,获取客户端IP地址,获取当前页面路径。

      Default.aspx的代码如下:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    
        <asp:Button ID="Button1" runat="server" Text="获取客户端浏览器信息" 
            onclick="Button1_Click" />
        <asp:Button ID="Button2" runat="server" Text="获取客户端IP地址" 
            onclick="Button2_Click" />
        <asp:Button ID="Button3" runat="server" Text="获取当前页面路径" 
            onclick="Button3_Click" />
    
    </div>
    </form>
</body>
</html>

      (2)在Default.aspx.cs的Button1_Click事件中先定义HttpBrowserCapabilities的类对象用于获取Request对象的

Browser属性的返回值。

      Default.aspx.cs代码如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        foreach (var p in Request.UserLanguages)
        {
            Response.Write("UserLanguages属性:" + p + "<br/>");
        }
        Response.Write("UserHostName属性:" + Request.UserHostName + "<br/>");
        Response.Write("UserHostAddress属性:" + Request.UserHostAddress + "<br/>");
        Response.Write("Url属性:" + Request.Url + "<br/>");
        Response.Write("PhysicalApplicationPath属性:" + Request.PhysicalApplicationPath + "<br/>");
        Response.Write("Browser属性:" + Request.Browser + "<br/>");
        Response.Write("<hr/>");
    }
    protected void Button1_Click(object sender, EventArgs e)
    {
        HttpBrowserCapabilities b = Request.Browser;
        Response.Write("客户端浏览器信息:");
        Response.Write("<hr/>");
        Response.Write("类型:" + b.Type + "<br/>");
        Response.Write("名称:" + b.Browser + "<br/>");
        Response.Write("版本:" + b.Version + "<br/>");
        Response.Write("操作平台:" + b.Platform + "<br/>");
        Response.Write("是否支持框架:" + b.Frames + "<br/>");
        Response.Write("是否支持表格:" + b.Tables + "<br/>");
        Response.Write("是否支持Cookies:" + b.Cookies + "<br/>");
        Response.Write("<hr/>");
    }
    protected void Button2_Click(object sender, EventArgs e)
    {
        Response.Write("客户端IP地址:");
        Response.Write("<hr/>");
        Response.Write("方法一:通过Request.UserHostAddress获取客户端IP地址:" + Request.UserHostAddress+"<br/>");
        Response.Write("方法一:通过Request.ServerVariables['REMOTE_ADDR']获取客户端IP地址:" + Request.ServerVariables["REMOTE_ADDR"] + "<br/>");
        Response.Write("<hr/>");
    }
    protected void Button3_Click(object sender, EventArgs e)
    {
        Response.Write("当前页面路径:");
        Response.Write("<hr/>");
        Response.Write("当前页面虚拟路径为:" + Request.CurrentExecutionFilePath + "<br/>");
        Response.Write("当前页面物理路径为:" + Request.PhysicalPath + "<br/>");
        Response.Write("<hr/>");
    }
}   
       运行的结果为:

技术分享

      点击获取客户端浏览器信息按钮:

技术分享

      点击获取客户端IP地址按钮:

技术分享

      点击获取当前页面路径按钮:

技术分享




动态网站开发技术学习4:ASP.NET内置对象之Request对象

标签:

原文地址:http://blog.csdn.net/erlian1992/article/details/50033079

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!