《第15章 开发Web应用程序.doc》由会员分享,可在线阅读,更多相关《第15章 开发Web应用程序.doc(26页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第15章 开发Web应用程序Web应用程序,是一种以网页形式为界面的应用程序,Web应用程序可以利用网络的强大功能为用户提供服务。ASP.NET为这种类型应用程序的开发提供了一个强大的平台。还有一种可以为Web应用程序提供服务的网络应用,叫XML WebService,也叫Web服务,它虽然不以可视的界面出现在用户面前,但可以为用户的客户端应用程序或Web应用程序提供网络服务。事实上,.NET本身就具有浓郁网络气息,所以可以毫不夸张地说,Visual Studio.NET就是为计算机网络技术的迅猛发展而诞生的。15.1 ASP.NET简介Web应用程序也叫动态网页。动态网页是相对于静态网页而言
2、的,所谓静态网页,是指所有的网页内容都已事先设计完成,当用户通过网页浏览器(如最常见的IE浏览器)请求打开网页时,Web服务器就将这种事先设计好的网页一字不改地发送到用户的浏览器中供用户浏览。而动态网页则不同,动态网页至少有一部分内容并非事先设计,这部分内容要根据用户的具体请求在Web服务器上进行处理,临时生成,然后将包含临时生成内容的网页发送到用户的浏览器中供用户浏览。ASP.NET就是用于开发动态网页的,它由微软的.NET技术细化而来,ASP.NET完全基于模块与组件,和以前的Web应用程序开发平台相比,使用户可以像开发Windows应用程序那样开发Web应用程序,有效地缩短了Web应用程
3、序的开发周期。15.1.1 ASP.NET的运行环境由于Web应用程序是在Web服务器上对页面进行处理,这就决定了Web应用程序是在服务器端运行的程序,所以作为Web应用程序开发平台的ASP.NET其运行环境对计算机的硬件与软件都有一定的要求,其对计算机硬件的要求如下:CPU:PII 300 MHz以上,推荐使用PIII 600 MHz以上。内存:96 MB,推荐使用128 MB以上。硬盘空间:完全安装方式至少需要250MB,快速安装方式需要至少155MB。显示器:要求分辨率至少800x600,支持256种以上的颜色数。ASP.NET对操作系统环境的要求较高,它只能在Windows 2000
4、Profession SP1、Windows 2000 Server SP1、Windows XP Professional及更高版本中运行。如果使用的操作系统是Windows 2000 Professsion或Windows XP Professional,则需要安装操作系统具备的ASP.NET惟一可以使用的Web服务器组件IIS(Internet Information Service Internet信息服务),Windows 2000 Server在安装时会自动安装IIS,故无需单另安装。IIS安装后还需要安装FrontPage 2000服务器扩展,因为.NET框架必须利用IIS注册扩
5、展模块。除了操作系统之外,运行ASP.NET还需要安装.NET Framework(.NET框架)、MDAC(Microsoft Data Access Components,数据访问组件)。图15-1 创建ASP.NET Web应用程序出错如果计算机中已经安装了Visual Studio .Net 2003、IIS及NET Framework 1.1,而在Visual Studio .NET环境中创建ASP.NET Web应用程序时,仍出现图15-1所示的出错信息,则说明ASP.NET运行环境的配置存在问题,需要执行Windows“开始”菜单“程序”项“Visual Studio .NET
6、2003”下“Visual Studio .NET工具”下的“Visual Studio .NET命令提示”命令,打开一个命令提示符窗口,键入“aspnet_regiis /i”命令后按Enter键进行修复。15.1.2 ASP.NET应用程序的组成ASP.NET的一个重要突破是实现了用户界面程序(html代码)和功能实现程序(用VB.NET、C#等语言编写的程序)的分离。一个ASP.NET页面文件可以被拆分成两个独立的部分:一个文件(xxxxx.aspx)包含html代码和控件信息,用来描述页面外观;另一个文件(xxxxx.aspx.cs)包含实现程序功能的代码。图15-2和图15-3所示的
7、是某ASP.NET Web应用程序项目中“*.aspx”和“*.cs”文件的内容,可以看出前者与普通的.htm文件格式非常相似,而后者则与C#应用程序的格式相似。 图15-2 *.aspx文件的内容 图15-3 *.cs文件的内容程序代码分离提供了这样的可能,从事美工的设计人员负责完成用户界面程序(html代码),编程人员负责完成功能实现程序(用VB.NET、C#等语言编写的程序),通过团队合作提供应用程序的质量和开发效率。本章节主要介绍关于*.cs的设计方法和技巧,关于页面html代码方面的知识请参阅有关资料。15.1.3 Web窗体页及生命周期Web窗体页就是程序运行后,在用户浏览器窗口显
8、示的网页,当创建一个Web应用程序项目后,ASP.NET会自动生成一个可视化WebForm1类定义,即Web窗体页,当Web程序运行时,该类定义可以实例化为一个网页对象,即显示在用户浏览器中的网页界面(Web应用程序用户界面)。虽然,进行Web编程与Windows编程很相似,但由于网页需要由服务器通过网络传送到客户端计算机上,而服务器对网页的传送处理机制,对Web应用程序的设计必然存在影响,使Web应用程序设计具有与Windows应用程序设计不同的特点。因此了解Web窗体页的工作方式将有助于Web应用程序的设计。当浏览器向用户展示一个窗体,用户对该窗体进行操作后,将导致该窗体回发到服务器,服务
9、器对用户的操作处理后又将窗体返回到浏览器,这一过程称作“往返过程”。问题在于,服务器返回的窗体并不是老的窗体,而是重新生成的窗体,这就意味着Web应用程序又生成了一个新的窗体实例(对象)发送到了用户的浏览器端,也就是通常所说的“刷新”,并且服务器在完成发送后,立即将生成的窗体释放,不予保留。在下一个往返过程中,服务器仍然生成新窗体。这也就是说,当用户向服务器提交操作时,其看到的操作结果网页已经是一个全新的网页了,相当于将Windows应用程序关闭后又重新启动一样。因此,Web窗体页的生命周期是自用户打开网页开始到提交操作为止的这段时间。这样完全用Windows应用程序设计的思路来设计Web应用
10、程序,有时会产生意想不到的结果。例如,图15-4是一个Web应用程序运行时的界面。按照Windows应用程序设计的思路,用户输入“5”和“3”后,单击【保存和】按钮,是将“5”和“3”相加的结果,保存在类的初始值为0的字段变量X中,单击【显示和】按钮是将保存和的X的值显示出来,但结果却出人意料为0,如图15-5所示。而单击【计算】按钮,则是直接将“5”和“3”相加的结果显示出来,结果正常,如图15-6所示。 图15-4 单击【保存和】按钮 图15-5 单击【显示和】按钮 图15-6 单击【计算】按钮之所以如此,是因为当用户单击【保存和】按钮时,即向服务器提交了操作,当服务器根据操作请求完成处理
11、后,会将新的Web窗体页(网页)附加操作结果发送到用户的浏览器,这时就是老的Web窗体页生命周期的结束,新的Web窗体页生命周期的开始,并且这时的字段变量X的值是“8”,但是当用户单击【显示和】按钮时,服务器生成新的Web窗体页后,X也被重新构造,并初始化为0,因此显示的结果自然为0。根据上述的道理,单击【计算】按钮结果正常也就是理所当然了。需要说明的是Web窗体页中的“5”和“3”所以在每次生成的新Web窗体页中都能正常显示,是因为ASP.NET在往返过程间能保存页和控件属性,这称作保存控件的视图状态。顺便说明,Web窗体页中显示的“5”、“3”、“0”“8”等均为动态网页的“动态”部分,因
12、为这些内容不是由“用户界面程序”事先设计的,而是服务器根据用户的操作由“功能实现程序”动态生成的。15.2 创建Web窗体应用程序使用ASP.NET创建Web窗体应用程序的过程与创建Windows应用程序的过程类似,分创建项目、添加控件,设计代码、进行调试等环节。15.2.1 创建ASP.NET Web应用程序项目图15-7 创建ASP.NET Web应用程序计算机中安装了Visaul Studio .NET,并正确配置了ASP.NET的运行环境后启动Visual Studio .NET 2003,在图15-7所示的“新建项目”对话框中选择项目类型为“Visual C#项目”,选择使用的模板为
13、“ASP.NET Web应用程序”,在“位置”栏中指定项目文件存放的位置,如本例的“http:/ localhost /WebAppTest”。单击【确定】按钮进入图15-8所示的ASP.NET Web应用程序的开发环境。该过程中系统会在“C:Inetpubwwwroot”下创建一个名为“WebAppTest”的文件夹,其中存放了该项目包含的所有文件和文件夹。ASP.NET应用程序开发环境界面与前面介绍过的C#的界面十分相似,只是用一个网页界面替换了Windows窗体控件,并且在工具箱中多出了一些与网页制作有关的“Web窗体控件”。在窗口的下方有“设计”和“HTML”两个选项卡,单击选项卡可进
14、入相应的视图方式。在“设计”视图中用户能在可视化环境中进行页面设计,而在“HTML”视图中可查看当前网页对应的html代码。图15-8 ASP.NET Web应用程序开发环境当一个新的Web应用程序被创建后,系统会自动创建以下几个文件: WebForm1.aspx文件:这是一个空白的ASP.NET Web窗体页面,通常可将第一个.aspx文件改名为“default.aspx”或“index.aspx”作为Web站点的缺省主页。 AssemblyInfo.cs文件:这是一个普通的源代码文件,其中包含了所有的程序集特性。 Global.asax文件:这是应用程序自动启动时被加载的第一个文件,它包含
15、了Application_Start,Session_Start,Application_End,Session_End等几个过程。 Web.config文件:这是ASP.NET应用程序的配置文件。15.2.2 ASP.NET常用控件ASP.NET为方便用户进行页面设计,提供了大量控件。使用这些控件可帮助用户在可视化的环境中更加直观地设计Web页面,避免了使用html标记语言书写大量代码的麻烦。当用户将某控件添加到Web窗体上时,系统会自动生成相应的html代码,用户可单击窗体下方的“html”选项卡,进入html视图对这些自动生成的代码进行浏览、编辑或修改。1. ASP.NET控件的分类在A
16、SP.NET中控件分为Web窗体控件和html控件两大类。在图15-9所示的html控件工具箱中,可以看到一些Web页面中常用的元素。如标签控件Lbale、命令按钮控件Button、重置按钮控件Reset Button、提交按钮控件Submit Button等。 图15-9 html控件 图15-10 Web窗体控件在图15-10所示的Web窗体工具箱中,可以看到一些控件与前面介绍过的Windows窗体控件相同,如标签控件Label、文本框控件TextBox、命令按钮控件Button等。此外有一些Web窗体专用的控件,如链接按钮LinkButton、图片按钮ImageButton、超链接Hyp
17、erLink、下拉列表框DropDownList、表格控件Table等。Web窗体控件与html控件或html表单(html Form)相比较,除了功能更加强大外,还有一个重要的区别,Web窗体控件是服务器端控件,是在服务器端生成的,用户在浏览器中看到的内容是程序在服务器端运行的结果。这就意味着客户端完全可以不安装.NET框架,也可以正常浏览ASP.NET网页。使用Web窗体中的控件,可像在C#的Windows应用程序中一样编写这些控件的事件代码,这也是Web窗体控件与html控件的一个关键不同点。html控件是运行在客户端的控件,用户的浏览器必须支持这些控件才能看到预期的效果。在设计时,程序
18、员可通过查看控件图表左上角是否有一个绿色三角标记来区分它们,如图15-11所示。图15-11 两种控件外观上的不同2. 使用ASP.NET控件本节将通过一个综合实例介绍Web窗体中常用控件的使用方法,同时也通过该实例说明创建一个简单Web应用程序的一般步骤。图15-12 浏览器中ASP.NET应用程序运行结果【例15-1】创建并在服务器上发布一个Web应用程序。要求当用户通过浏览器访问程序发布站点的URL时,显示图15-12所示的页面。当用户选择了相应的数据后,单击【提交】按钮,在页面的下方将显示出用户提交的信息。程序设计步骤如下。(1) 设计Web程序界面首先在Visual Studio .
19、NET环境中创建一个ASP.NET应用程序项目。首先向Web窗体上添加一个标签控件Label1。单击“工具箱”中的“html”选项卡,选择“Table”(表格)控件,在Label1的下方“绘制”出一个html表格(系统缺省地将表格设置为3行3列)。单击Web窗体下方的“HTML”选项卡进入图15-13所示的html视图方式,图中被选中的部分为表格中的行列定义,其中“”是对一行表格的定义,在“”与“”之间的“”是对表格一行中的一个单元格的定义。要使表格变为3行2列,只需删除每个“”与“”之间的一个“”即可。要增加表格的行,只需复制粘贴“”到“”之间的内容即可。按上述方法将表格修改为6行2列,修改
20、前后的html代码如图15-14所示。 图15-13 Web页面的html视图 图15-14 修改前后的html代码回到“设计”视图,选中整个表格可以整体调整表格的大小,用鼠标在表格的某一单元格中单击即可在其中直接输入文字或添加控件,并且可以调整表格内表格线。在表格第1列的前5行中直接依次输入文字:“姓名:”、“性别:”、“出生日期:”、“所在省/自治区:”、“爱好:”。将光标定位在第1行第2列,鼠标双击Web窗体工具箱中的文本框控件TextBox,将其添加到该单元格中并适当调整其大小和位置。该控件名称(ID)属性默认为TextBox1。将光标定位在第2行第2列处,用鼠标双击Web窗体工具箱中
21、的单选按钮组控件RadioButtonList,将其添加到该单元格。系统缺省地将其成员数量默认为1,Text属性默认为“未绑定”,名称(ID)属性默认为RadioButtonList1。图15-15 设计Web应用程序界面将光标定位在第3行第2列处,用鼠标双击Web工具箱中的文本框控件TextBox,将其添加到该单元格,其名称(ID)属性默认为TextBox2。输入“年”。双击下拉列表列表框控件DropDownList两次,添加两个该控件,其Text属性默认为“未绑定”,名称(ID)属性依次默认为DropDownList1、DropDownList2。将光标定位在第3行第2列处,用鼠标双击We
22、b工具箱中的DropDownList控件,将其添加到该单元格,其Text属性默认为“未绑定”,名称(ID)属性默认为DropDownList3。将光标定位在第5行第2列处,双击复选框列表控件CheckBoxList,将其添加到该单元格,其Text属性默认为“未绑定”,名称(ID)属性默认为CheckBoxList1。将光标定位在第6行第2列处,用鼠标双击Web工具箱中的按钮控件Button,将其添加到该单元格,其Text属性默认为“Button”,名称(ID)属性默认为Button1。用鼠标单击Web窗体后,再用鼠标双击Web工具箱中的标签控件,将其添加到Web页面中。拖动新添加的标签控件到表
23、格下方的适当位置并调整其大小。重复上述操作向窗体中再添加3个标签控件。这4个标签的与开始添加的1个标签的名称(ID)按添加的先后次序依次默认为Label1、Label2、Label3、Label4、Label5,而它们的Text属性均默认为Label。设计界面如图15-15所示。(2) 设置对象属性图15-16 设置字体选择Label1,在属性窗口中设置其Text属性为“个人信息调查”。在属性窗口单击“Font”属性左侧的“+”号,在展开的子属性中,单击“Name”属性右侧的下拉按钮,选择“华文彩云”,单击“Size”右侧的下拉按钮,选择“X-Large”,如图15-16所示。设置该标签的背景
24、色与前景色,最好使用“Web”选项卡中的颜色并注意颜色的反差。选择RadioButtonList1控件,在其属性窗口中单击“Items”属性右边的按钮,打开图15-17所示的对话框。单击【添加】按钮,向单选按钮列表中添加成员,并设置其Text属性分别为“男”和“女”。设置完毕后单击【确定】按钮关闭对话框。为了使单选按钮组中所有成员横向排列,可将其“RepeatDirection”(布局方向)属性设置为“Horizontal”(水平)。选择DropDownList1控件,在其属性窗口中单击“Items”属性右边的按钮,打开图15-18所示的对话框。单击【添加】按钮向其中添加程序运行时提供给用户的
25、选项,其中第一项的“Text”。属性为“月份”,其后依次为“1月”“12月”。依法将DropDownList2控件添加各项设置为“日期”及“1日”“31日”。选择DropDownList3控件添加各项设置为“省/自治区”、“北京市”、“上海市”、“天津市”、“河南省”、“河北省”、“山东省”、“山西省”、“其他省”。设置复选框列表(CheckBoxList1)控件与设置单选按钮列表控件的方法类似。设置四个复选项:“足球”、“网球”、“旅行”和“音乐”。设置“RepeatDirection”(布局方向)属性值为“Horizontal”(水平)。然后,选中控件通过拖动控件其周边出现的控制点调整控件
26、的大小,使所有成员的说明文字能正常显示。 图15-17 添加单选按钮组提供的选项 图15-18 添加下拉列表框中的选项选择按钮控件Button,在属性窗口中设置其Text属性为“提交”。设置表格下面四个标签(Label2Label5)的Text属性为空。在代码中需使用对象名称的控件的“ID”(名称)属性设置见表14-1。表14-1 各控件ID属性设置原ID属性值修改ID属性值说明textBox1txtName输入姓名文本框RadioButtonList1radSex性别单选按钮textBox2txtYear输入出生年份文本框DropDownList1dropMonth选择出生月份下拉列表框Dr
27、opDownList2dropDay选择出生日期下拉列表框DropDownList3dropArea选择所在地下拉列表框CheckBoxList1chkLike选择爱好复选框label2lblNameSex显示姓名、性别标签label3lblbirthday显示出生日期标签label4lblArea显示所在地标签label5lblLike显示爱好标签设置完成界面如图15-19所示。(3) 编写程序代码双击Web窗体进入代码窗口,为窗体的Load事件添加如下代码:private void Page_Load(object sender, System.EventArgs e)/ 在此处放置用户代
28、码以初始化页面/ 清空显示信息标签的文本属性值lblNameSex.Text=lblBirthday.Text=lblArea.Text=lblLike.Text=;图15-19 设置属性【提交】按钮被单击时执行的事件代码如下:private void Button1_Click(object sender,System.EventArgs e)lblNameSex.Text=姓名:+txtName.Text+ 性别:+radSex.SelectedItem;lblBirthday.Text=出生日期:+txtYear.Text+年+dropMonth.SelectedItem+dropDay
29、.SelectedItem;lblArea.Text=所在地:+dropArea.SelectedItem;lblLike.Text=爱好:;for(int i=0;ichkLike.Items.Count;i+)/ 如果某复选框被选中,则其文本属性即被连接至lblLike标签的Text属性值中if(chkLike.Itemsi.Selected) lblLike.Text+=chkLike.Itemsi.Text+ ;(4) 测试Web应用程序单击工具栏中的启动按钮,如果出现图15-20所示的出错信息框,则通常是由于IIS站点管理器中没有为该站点启用“集成Windows身份验证”。 图15-
30、20 运行出错信息 图15-21 启用集成Windows身份验证可在Windows控制面板中双击“管理工具”图标,在打开的窗口中双击“Internet信息服务”图标,在打开的窗口中右键单击本项目所在站点的名称,在弹出的快捷菜单中执行“属性”命令。在打开的对话框中单击“目录安全性”选项卡,再单击【编辑】按钮,打开图15-21所示的对话框,选择“集成Windows身份验证”复选框后,单击【确定】按钮。再次运行程序将看到正确的Web页面,填写或选择实验性的数据测试程序功能的正确性。15.3 ASP.NET的常用对象ASP.NET为用户提供了一些对象用来帮助用户快速、简单地完成Web应用程序的设计。本
31、节将介绍这些对象的基本概念和使用方法。15.3.1 Page对象Page对象表示客户机请求的页面,即已编译运行的页面(内存中的实例),该页面来自于.aspx文件。1. Page对象的常用属性Page对象主要有IsPostBack、Application、Request、Response、Server、Session等几个常用的属性。(1) IsPostBack属性Page对象的IsPostBack属性用于获取一个逻辑值,该值指示当前页面是否正为响应客户端回发而加载,或者它是否正在被首次加载和访问。其值为“True”时,表示页面是为响应客户端回发而加载,否则表示页面是首次加载。下面的Web窗体加
32、载事件代码,使用Page对象的IsPostBack属性进行判断,从而实现对用户浏览过的网页没有浏览过的网页,提示不同的信息。private void Page_Load(object sender, System.EventArgs e)if(!IsPostBack)Label1.Text=这是初次加载的网页;elseLabel1.Text=服务器回发网页产生的刷新;(2) Application属性Page对象的Application属性为当前Web请求获取Application对象。(3) Request属性Page对象的Request属性用于获取请求Web页的HttpRequest对象。
33、(4) Response属性Page对象的Response属性用于获取与Page对象相关的HttpResponse对象,它使HTTP响应数据发送到客户端,并包含有关该响应的信息。(5) Server属性Page对象的Server属性用于获取Server对象。(6) Session属性Page对象的Session属性用于获取ASP.NET提供的当前Session对象。2. Page对象的常用事件Page对象的常用事件有Load(装入)和UnLoad(卸载)事件。前者在Web页面被加载时触发,而后者则在Web页面结束时触发。15.3.2 Response对象Response对象是从System.w
34、eb命名空间中的HttpResponse类中派生出来的。CLR(Common Language Runtime,公共语言运行库)会根据用户的请求信息创建一个Response对象,该对象被用于回应客户浏览器,告诉浏览器回应内容的报头、服务器端的状态信息以及输出制定的内容。该对象常用的属性及方法主要有以下几个。(1) Buffer属性Response对象的Buffer属性用来设置是否在服务器端开启缓存功能。当Buffer属性设置为“True”时,启用服务器端的缓存功能。此时,服务器会将整个页面处理后再传给客户端浏览器;否则服务器将边处理页面边将处理完毕的数据传递给客户端浏览器,用户看到的网页可能是
35、不连续的。(2) Write方法Write方法用于向浏览器发送指定的文本内容。例如,下列语句将当前服务器时间显示到客户浏览器中:Response.Write(现在的时间是:);Response.Write(DateTime.Now.ToLongTimeString( );(3) Redirect方法Redirect方法用于将客户端重定向到新的URL。例如,下列语句将使用客户端浏览器重定向到“网易”的主页:Response.Redirect(http:/ );该方法常被用来根据某条件将用户引向不同页面的情况。例如,如果用户正确回答了口令,则可看到诸如视频点播、软件下载、资料阅读等页面,否则将看到
36、拒绝进入的说明页面信息。15.3.3 Request对象Request对象实际上是从System.web命名空间中的HttpRequest类派生出来的。当客户端浏览器请求ASP.NET应用程序时,CLR将客户端请求信息封装在Request对象中,包括请求报头(Header、浏览器类型、浏览器版本号、用户使用的语言及编码方式等)、请求方法(Post或Get)、参数名称、参数值等。Request对象的主要属性有以下几个。(1) UserHostAddress属性UserHostAddress属性用于返回用户的IP地址。下列添加到Page_Load事件中的语句可以实现拒绝某特定主机对当前Web页的访
37、问:private void Page_Load(object sender, System.EventArgs e) if (Request.UserHostAddress=219.154.106.56 ) / 如果用户IP地址为192.168.106.56Response.Redirect(http:/ 219.154.106.99/Info.htm);/ Info.htm为显示有拒绝信息的静态Web页面(2) QueryString属性QueryString属性用于收集来自请求URL地址中“?”后面的数据,这些数据称为“URL的附加信息”,通常用来在不同网页之间传送数据。【例15-2】使
38、用Response对象和Request对象的QueryString属性实现不同页面之间数据的传送及接收。程序要求包含两个页面文件WebForm1.aspx和WebForm2.aspx,程序启动后首先打开图15-22所示的页面WebForm1.aspx,在文本框中填写自己的姓名后单击【进入】按钮后,打开页面WebForm2.aspx,其中自动显示从上一页面获取的用户姓名信息,并显示在页面中,如图15-23所示。 图15-22 第一个页面 图15-23 从第一个页面中获取信息程序设计步骤如下。首先在Visual Studio .NET环境中创建一个ASP.NET Web应用程序项目,在WebFor
39、m1.aspx中添加一个标签控件Label1、一个文本框控件TextBox1和一个按钮控件Button1。设置Label1的Text属性为“姓名:”,TextBox1的ID(名称)属性设置为TxtName,设置Button1的Text属性为“进入”。执行Visual Studio .NET“项目”菜单下“添加Web窗体”命令创建WebForm2.aspx。编写WebForm1中按钮Button1单击事件的代码如下:private void Button1_Click(object sender, System.EventArgs e)string username=TxtName.Text;R
40、esponse.Redirect(WebForm2.aspx?name=+username);上述语句Response.Redirect(webform2.aspx?name=+username)的作用是跳转到WebForm2.aspx页面,并传递一个参数name(其中存放着用户在文本框中输入的内容)。切换到WebForm2中,双击Web窗体进入其Page_Load事件的代码编写区,添加如下代码。private void Page_Load(object sender, System.EventArgs e)/ 在此处放置用户代码以初始化页面Response.Write(欢迎 +Request
41、.QueryStringname+进入本论坛);图15-24 程序运行结果语句Request.QueryStringname使用Request对象的QueryString属性接收Response对象传递过来的数据。(3) Browser属性Request对象的Browser属性用来返回客户端浏览器的信息和客户端操作系统的信息。【例15-3】使用Request对象的Browser属性获取客户端浏览器及操作系统的信息,并将其小显示到Web页面中,程序运行结果如图15-24所示。首先创建一个ASP.NET Web应用程序项目,在Web窗体的Page_Load事件中添加如下代码。private voi
42、d Page_Load(object sender, System.EventArgs e)/ 在此处放置用户代码以初始化页面/ HttpBrowserCapabilities创建的bc是一个对象,用于存放浏览器信息HttpBrowserCapabilities bc = Request.Browser;/ 增加三个空行,以避免与标题重叠Response.Write();Response.Write();Response.Write();Response.Write(类型: +bc.Type + );Response.Write(名称: + bc.Browser + );Response.Wr
43、ite(版本: +bc.Version + );Response.Write(操作系统: +bc.Platform + );Response.Write(是否测试版: +(bc.Beta?是:否) +);Response.Write(是否支持框架网页: +(bc.Frames?是:否) +);Response.Write(是否支持表格: +(bc.Tables?是:否) +);Response.Write(是否支持VBScript: + (bc.VBScript?是:否) +);Response.Write(是否支持JavaScript: +(bc.JavaScript?是:否) +);Res
44、ponse.Write(是否支持JavaApplets: +(bc.JavaApplets ?是:否)+ );Response.Write(是否支持ActiveX控件: +(bc.ActiveXControls ?是:否)+);“HttpBrowserCapabilities bc = Request.Browser;”语句用于将返回的客户端浏览器信息,赋值给自定义的HttpBrowserCapabilities对象bc。随后的代码中通过bc对象的各属性值,获得客户浏览器的详细数据。“”为换行符。代码中的逻辑值使用条件表达式转换为“是”与“否”。(4) ServerVariables属性Req
45、uest对象的ServerVariables属性用来获取服务器的有关数据。常用的选项有。 Local_Addr:返回本地IP地址。 Path_Info:返回当前被请求的相对路径。 Path_Translated:返回当前被请求的绝对路径。图15-25 程序运行结果 Server_Name:返回服务器名。 Server_Port:返回服务器端口号。 Server_SoftWare:返回响应请求的服务程序。【例13-4】使用Request对象的ServerVariables属性获取服务器有关信息。创建一个新的ASP.NET Web应用程序项目,在WebForm1的Page_Load事件中添加如下代码。程序运行结果如图15-25所示。private void Page_Load(object sender, System.EventArgs e)/ 在此处放置用户代码以初始化页面Response.Write();Response.Write();Response.Write();Response.Write(本地IP地址: +Request.ServerVariablesLocal_Addr+