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

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地址按钮:

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

时间: 2024-10-05 22:00:57

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

动态网站开发技术学习2:VS 2010制作作第一个简单示例网站

制作一个简单示例网站的步骤: 一,启动VS 2010开发环境,选择菜单中的"文件",选择其中的"新建",再选择"网站",会弹出"新建网站"对话框. 二,在"新建网站"的对话框,在"已安装模板"中选择Visual C#,右侧的选择"ASP.NET网站"选项,单击"新建网 站"中的"文件系统",下拉菜单中有"文件系统&qu

JSP简介以及常见动态网站开发技术(Asp.net、Php、Jsp)

jsp简介:

Mysql 与 php动态网站开发 入门教程

这个系列的教程由表单开始写,因为表单可以把数据库和web 之间的交互表现得很明显.提交表单 ,数据库记录注册信息. 本教程属于基础教程.大神请略过. 对于php和mysql之间的稳固性很受程序员的喜爱.虽说最近出现了hack语言准备替代php语言,但是这个语言本身也是基于php的,后面我们可以对hack语言进行一定得学习. 好像博客园有好多大牛,不知道会不会被喷,好怕 ........当然,我是借着自己学习的这股劲,把学习的过程也给记录下来.教程涉及  html 表单 简单的php 和mysql

流媒体网站开发技术浅谈

流媒体网站开发技术浅谈(2012-02) 2012-03-02    新闻来源:武汉广电网 张方东 (黄陂区广播影视局事业技术科) 摘 要:随着有线和无线网络宽带的高速发展,人们不再满足于因特网中仅有的文字.图片等简单信息,而越来越希望看到更直观.更丰富的影视节目,流媒体网站因此应运而生.本文从流媒体概念.流媒体格式.流媒体文件制作.流媒体文件传输.流媒体文件发布及流媒体网站部署等方面对开发流媒体网站作了详细阐述. 关键词:流媒体 网站开发 部署 技术 1.概述 在网络上传输多媒体有下载和流式传

已发布13集网站开发技术视频:http://blog.sina.com.cn/s/blog_67d27f340102vf7l.html

已发布13集网站开发技术视频:http://blog.sina.com.cn/s/blog_67d27f340102vf7l.html

asp.net内置对象

转:http://www.cnblogs.com/MyBeN/archive/2011/03/23/1992591.html (1)简述ASP.NET内置对象. 答:ASP.NET提供了内置对象有Page.Request.Response.Application.Session.Server.Mail和Cookies.这些对象使用户更容易收集通过浏览器请求发送的信息.响应浏览器以及存储用户信息,以实现其他特定的状态管理和页面信息的传递. (2)简述Response对象. 答:Response对象

asp.net内置对象Server

1.Server是Context的一个属性,是HttpServerUtility类的一个对象. 2.Server.HtmlDecode(),Server.HtmlEncode(),Server.UrlEncode(),Server.UrlDecode()是对HttpUtility类中相应方法的一个代理调用.有的时候很难拿到Server对象,使用HttpUtility. 3.Server.Transfer(path)内部重定向请求,Server.Transfer("hellow.aspx"

vue2.0学习(四)-实例和内置组件

vue2.0学习(四)-实例和内置组件 1.实例入门-实例属性 一.Vue和Jquery.js一起使用 下载可以去官网进行下载,我这里使用的版本是3.1.1,下载好后在需要的页面引入就可以了.当然你还有很多其它的方法引入jquery,只要可以顺利引入就可以了. <script type="text/javascript" src="../assets/js/jquery-3.1.1.min.js"></script> <!DOCTYPE

asp.net内置对象session和cookie

1.各个机器的session对象不同,不同浏览器之间不通用(换个浏览器,是个新的session). 2.session状态对象起始于网页打开,终止于网页关闭,生命周期有限. 3.关闭浏览器/超时的情况下,session对象即被销毁,不要放太多/太大的对象在session. 4.Web应用程序在传统意义上无状态,需要使用内置对象进行客户端状态的保存. 5.session对象和Application对象存储在服务端,cookie对象存储在客户端. 6.session对象适用于安全性相比之下较高的场合