99
搭搭 搭搭 ASP.NET ASP.NET 搭搭搭搭 搭搭搭搭 搭搭搭搭搭 搭搭搭搭搭 IIS IIS 搭搭 搭搭 web.Config web.Config 搭搭 搭搭 搭搭搭搭 搭搭搭搭 : : web web 搭搭搭搭搭搭ASP.NET ASP.NET 搭搭 搭搭 2 2 搭搭 搭搭 ASP.NET ASP.NET 搭搭搭搭 搭搭搭搭

搭建 ASP.NET 开发环境 安装和配置 IIS 配置 web.Config 文件 补充内容 : web 服务器, ASP.NET 对象

Embed Size (px)

DESCRIPTION

第 2 章 搭建 ASP.NET 开发平台. 搭建 ASP.NET 开发环境 安装和配置 IIS 配置 web.Config 文件 补充内容 : web 服务器, ASP.NET 对象. 2.1 搭建 ASP.NET 开发环境. 打开 【 文件 】 菜单中的 【 新建网站 】 命令, 新建一个 ASP.NET 网站。( vs2005, vs2008 ) Vs2010-- 【 新建空网站 】-- 添加一个 Web 页 打开 【 工具 】 菜单,选中 【 选项 】 命令, 对开发环境进行配置。. - PowerPoint PPT Presentation

Citation preview

Page 1: 搭建 ASP.NET  开发环境 安装和配置 IIS 配置 web.Config  文件 补充内容 :     web 服务器, ASP.NET  对象

搭建搭建 ASP.NET ASP.NET 开发环境开发环境

安装和配置安装和配置 IISIIS 配置配置 web.Config web.Config 文件文件

补充内容补充内容 :: webweb 服务器,服务器, ASP.NET ASP.NET 对象对象

第第 22 章 章 搭建搭建 ASP.NETASP.NET 开发平台开发平台

Page 2: 搭建 ASP.NET  开发环境 安装和配置 IIS 配置 web.Config  文件 补充内容 :     web 服务器, ASP.NET  对象

2.1 2.1 搭建搭建 ASP.NET ASP.NET 开发环境开发环境 打开【文件】菜单中的【新建网站】命令,打开【文件】菜单中的【新建网站】命令,

新建一个新建一个 ASP.NETASP.NET 网站。(网站。( vs2005, vs2008 )vs2005, vs2008 ) Vs2010-- Vs2010-- 【新建空网站】【新建空网站】 ---- 添加一个添加一个 WebWeb 页页

打开【工具】菜单,选中【选项】命令,打开【工具】菜单,选中【选项】命令, 对开发环境进行配置。对开发环境进行配置。

Page 3: 搭建 ASP.NET  开发环境 安装和配置 IIS 配置 web.Config  文件 补充内容 :     web 服务器, ASP.NET  对象

ASP.NET ASP.NET 开发环境开发环境 ---Do it.---Do it.

1) 1) 【【 File/New/Web Site…File/New/Web Site… 】】

Page 4: 搭建 ASP.NET  开发环境 安装和配置 IIS 配置 web.Config  文件 补充内容 :     web 服务器, ASP.NET  对象

2) 2) 显示 显示 Hello, LijunHello, Lijun<%@ 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>Untitled Page</title></head><body> <form id="form1" runat="server"> <div> Hello, lijun </div> </form></body></html>

Page 5: 搭建 ASP.NET  开发环境 安装和配置 IIS 配置 web.Config  文件 补充内容 :     web 服务器, ASP.NET  对象

3) Run it: Ctrl + F53) Run it: Ctrl + F5

Page 6: 搭建 ASP.NET  开发环境 安装和配置 IIS 配置 web.Config  文件 补充内容 :     web 服务器, ASP.NET  对象

对对 ASP.NETASP.NET 开发环境进行配置开发环境进行配置1) 1) 选择浏览器:右击网站工程,点击选择浏览器:右击网站工程,点击

22 )打开【工具】菜单,选中【选项】命令,)打开【工具】菜单,选中【选项】命令, 对对 ASP.NETASP.NET 应用程序开发环境进行配置。应用程序开发环境进行配置。 在该对话框中有许多类别和选项,只介绍最相关在该对话框中有许多类别和选项,只介绍最相关

的类别和选项。的类别和选项。

在【常规】对话框中可以对窗口视图进行修改。在【常规】对话框中可以对窗口视图进行修改。 在【字体和颜色】对话框中,指定在在【字体和颜色】对话框中,指定在 VSVS 中使用的中使用的

文本字体,大小和颜色。文本字体,大小和颜色。

Page 7: 搭建 ASP.NET  开发环境 安装和配置 IIS 配置 web.Config  文件 补充内容 :     web 服务器, ASP.NET  对象

对话框中有许多类别和选项对话框中有许多类别和选项 ::

Page 8: 搭建 ASP.NET  开发环境 安装和配置 IIS 配置 web.Config  文件 补充内容 :     web 服务器, ASP.NET  对象

在【常规】中可对窗口视图、设计页面的显示状在【常规】中可对窗口视图、设计页面的显示状态等进行修改。态等进行修改。

Page 9: 搭建 ASP.NET  开发环境 安装和配置 IIS 配置 web.Config  文件 补充内容 :     web 服务器, ASP.NET  对象

在【字体和颜色】中,指定在在【字体和颜色】中,指定在 VSVS 中使用的文本中使用的文本字体字体 ,, 大小和颜色。用户可改变字体和颜色。大小和颜色。用户可改变字体和颜色。

Page 10: 搭建 ASP.NET  开发环境 安装和配置 IIS 配置 web.Config  文件 补充内容 :     web 服务器, ASP.NET  对象

一个简单的一个简单的 ASP.NET ASP.NET 网站 网站 <%@ 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> Hello! </div> </form></body></html>

Page 11: 搭建 ASP.NET  开发环境 安装和配置 IIS 配置 web.Config  文件 补充内容 :     web 服务器, ASP.NET  对象

运行结果 运行结果

网站项目网站项目

Page 12: 搭建 ASP.NET  开发环境 安装和配置 IIS 配置 web.Config  文件 补充内容 :     web 服务器, ASP.NET  对象

体现体现 ASP.NETASP.NET 动态网站的特性 动态网站的特性 protected void Page_Load(object sender, EventArgs e) { Response.Write("Welcome!"); }

运行结果运行结果

Page 13: 搭建 ASP.NET  开发环境 安装和配置 IIS 配置 web.Config  文件 补充内容 :     web 服务器, ASP.NET  对象

2.1.2 2.1.2 安装安装 IISIIS IISIIS 是是 Internet Information ServerInternet Information Server 的缩写,的缩写, 它是微软公司主推的服务器它是微软公司主推的服务器 ..

IISIIS 与与 Windows ServerWindows Server 完全集成在一起,完全集成在一起, 因而用户能够利用因而用户能够利用 Windows ServerWindows Server 和和 NTFSNTFS (( NT NT

File SystemFile System ,, NTNT 的文件系统)内置的安全特性,的文件系统)内置的安全特性, 建立功能强大、灵活而安全的建立功能强大、灵活而安全的 InternetInternet 站点。站点。

IISIIS 支持支持 ::1) HTTP1) HTTP (( Hypertext Transfer ProtocolHypertext Transfer Protocol ,超文本传,超文本传

输协议),输协议),2) FTP2) FTP (( File Transfer ProtocolFile Transfer Protocol ,文件传输协议),文件传输协议)3) SMTP3) SMTP 协议协议 (Simple Mail Transfer Protocol(Simple Mail Transfer Protocol 简单邮简单邮

件件 ) .) .

Page 14: 搭建 ASP.NET  开发环境 安装和配置 IIS 配置 web.Config  文件 补充内容 :     web 服务器, ASP.NET  对象

IISIIS 安装步骤安装步骤 通过网络,或在光驱中插入通过网络,或在光驱中插入 Windows XPWindows XP 安装光盘。安装光盘。 打开打开 windowswindows 的控制面板,的控制面板, 单击【添加或删除程序】图标。单击【添加或删除程序】图标。

单击【单击【添加添加 // 删除删除 WindowsWindows 组件组件】图标,】图标, 打开【打开【 WindowsWindows 组件】对话框。组件】对话框。 在【在【 Internet Internet 信息服务信息服务 (IIS)(IIS) 】复选框前打钩,】复选框前打钩, 单击【下一步】按钮,按照提示操作,单击【下一步】按钮,按照提示操作, 最后单击【完成】按钮,完成最后单击【完成】按钮,完成 IISIIS 安装操作。安装操作。

安装完成后,在安装完成后,在 IEIE 的地址栏里输入“的地址栏里输入“ http://localhost”http://localhost” ,,按下回车键,如果按下回车键,如果 IISIIS 欢迎界面,则表现欢迎界面,则表现 IISIIS 安装成功。安装成功。如果要输入口令,见帖子:如果要输入口令,见帖子: localhostlocalhost 要输入用户名和密码要输入用户名和密码

Page 15: 搭建 ASP.NET  开发环境 安装和配置 IIS 配置 web.Config  文件 补充内容 :     web 服务器, ASP.NET  对象

IISIIS 的具体安装方法的具体安装方法 控制面板控制面板 // 添加删除程序添加删除程序 // 添加添加 WindowsWindows 组件组件 //Windows Windows 组件向导组件向导 ,如 ,如

下图:下图:

Page 16: 搭建 ASP.NET  开发环境 安装和配置 IIS 配置 web.Config  文件 补充内容 :     web 服务器, ASP.NET  对象

添加添加 WindowsWindows组件组件

Page 17: 搭建 ASP.NET  开发环境 安装和配置 IIS 配置 web.Config  文件 补充内容 :     web 服务器, ASP.NET  对象

IISIIS 服务器安装成功?服务器安装成功? 11 )在目录 )在目录 注:主目录是注:主目录是

““ C:\Inetpub\wwwroot”C:\Inetpub\wwwroot” 写写index.htm:index.htm:

<html><html> <body> Hello </body><body> Hello </body></html></html>

2) 2) 在在 IEIE 中输入中输入 URL:URL: http://localhosthttp://localhostIEIE 显示显示 Hello,Hello, 则则安装成功安装成功 ..

Page 18: 搭建 ASP.NET  开发环境 安装和配置 IIS 配置 web.Config  文件 补充内容 :     web 服务器, ASP.NET  对象

2.1.3 2.1.3 配置配置 IISIIS 打开打开 WindowsWindows 的控制面板。在【性能和维护】中,的控制面板。在【性能和维护】中, 双击【管理工具】图标,打开管理工具双击【管理工具】图标,打开管理工具 ;;

双击【双击【 Internet Internet 信息服务】图标信息服务】图标 ;;

点击【网站】图标前面的“点击【网站】图标前面的“ +” +” 号,号, 可以看到【默认网站】图标。可以看到【默认网站】图标。

在默认网站上右击,选择【属性】,在默认网站上右击,选择【属性】, 打开属性对话框。打开属性对话框。

Page 19: 搭建 ASP.NET  开发环境 安装和配置 IIS 配置 web.Config  文件 补充内容 :     web 服务器, ASP.NET  对象

配置配置 IISIIS

Page 20: 搭建 ASP.NET  开发环境 安装和配置 IIS 配置 web.Config  文件 补充内容 :     web 服务器, ASP.NET  对象

在默认网站上右击,选择【属性】在默认网站上右击,选择【属性】 ::c:\inetpub\wwwroot 是网站根网站根目录目录

配置配置 TCP/IPTCP/IP 地址:地址:

Page 21: 搭建 ASP.NET  开发环境 安装和配置 IIS 配置 web.Config  文件 补充内容 :     web 服务器, ASP.NET  对象

主目录的设置主目录的设置 选择【主目录】,主目录中的本地路径就选择【主目录】,主目录中的本地路径就

是我们放置网站的地方。是我们放置网站的地方。 单击【浏览】按钮,选择你存放站点的路单击【浏览】按钮,选择你存放站点的路

径,径, 如 “如 “ c:\inetpub\wwwroot”c:\inetpub\wwwroot” ,这是系统,这是系统

默认的本地路径默认的本地路径 ;;

选取相应路径后,单击【确定】按钮,则选取相应路径后,单击【确定】按钮,则完成了主目录的设置。完成了主目录的设置。

Page 22: 搭建 ASP.NET  开发环境 安装和配置 IIS 配置 web.Config  文件 补充内容 :     web 服务器, ASP.NET  对象

【文档】选项的设置【文档】选项的设置 1) 1) 选择【文档】选项卡,选择【文档】选项卡, 2) 2) 选中【启用默认文档】复选框,选中【启用默认文档】复选框, 这样当运行这样当运行 webweb 程序后,不需要在地址栏中程序后,不需要在地址栏中

填写此文件名,系统会默认文档中的文件,比填写此文件名,系统会默认文档中的文件,比如要浏览如要浏览 ::

http://localhost/website1/default.aspxhttp://localhost/website1/default.aspx只需要在浏览器中输入:只需要在浏览器中输入: http://localhost/website1http://localhost/website1

就可以访问上述网页。就可以访问上述网页。

Page 23: 搭建 ASP.NET  开发环境 安装和配置 IIS 配置 web.Config  文件 补充内容 :     web 服务器, ASP.NET  对象

【文档】选项的设置【文档】选项的设置用户也可以添加新的或者删除默认文档。用户也可以添加新的或者删除默认文档。

Page 24: 搭建 ASP.NET  开发环境 安装和配置 IIS 配置 web.Config  文件 补充内容 :     web 服务器, ASP.NET  对象

【【 ASP.NETASP.NET 】选项卡】选项卡选择选择【【 ASP.NETASP.NET 】选项卡】选项卡,, 用户可以选择所使用用户可以选择所使用 ASP.NETASP.NET 版本 版本 1.1--2.01.1--2.0在在 IIS5.1IIS5.1 中,只可选择中,只可选择 1.11.1 , , 2.0.2.0.在在 IIS7.0IIS7.0 中,才可选择中,才可选择 ASP.NET3.5.ASP.NET3.5.

Page 25: 搭建 ASP.NET  开发环境 安装和配置 IIS 配置 web.Config  文件 补充内容 :     web 服务器, ASP.NET  对象

其他选项卡其他选项卡 选择选择【目录安全性】【目录安全性】选项卡,可以设置目录的安选项卡,可以设置目录的安

全性。全性。

共有三种方法可供选择,分别是:共有三种方法可供选择,分别是: “ “身份验证和访问控制”、身份验证和访问控制”、 “ “IPIP 地域和域名限制”、地域和域名限制”、 “ “ 安全通信”,安全通信”,

通过这三种方法可以有效的控制目录的安全性。通过这三种方法可以有效的控制目录的安全性。

Page 26: 搭建 ASP.NET  开发环境 安装和配置 IIS 配置 web.Config  文件 补充内容 :     web 服务器, ASP.NET  对象

ASP.NETASP.NET 虚拟目录的设置虚拟目录的设置 ASP.NETASP.NET 默认的目录在“默认的目录在“ C:\Inetpub\wwwrooC:\Inetpub\wwwroo

t”t” 地址下,我们运行地址下,我们运行 ASP.NETASP.NET 的应用程序时,的应用程序时,可以直接把应用程序拷贝到此文件目录下,而后就可以直接把应用程序拷贝到此文件目录下,而后就可以运行了可以运行了 ..

但是这样做很不方便,所以我们可以自行设置虚拟但是这样做很不方便,所以我们可以自行设置虚拟目录。目录。

打开控制面板,而后双击命令,在弹出的窗口中双打开控制面板,而后双击命令,在弹出的窗口中双击“管理工具”命令,这样,我们得到击“管理工具”命令,这样,我们得到 InternetInternet信息服务窗口。鼠标右键单击“默认网站”,信息服务窗口。鼠标右键单击“默认网站”,

选择“新建选择“新建 //虚拟目录”, 虚拟目录”,

Page 27: 搭建 ASP.NET  开发环境 安装和配置 IIS 配置 web.Config  文件 补充内容 :     web 服务器, ASP.NET  对象

InternetInternet 信息服务窗口 信息服务窗口

Page 28: 搭建 ASP.NET  开发环境 安装和配置 IIS 配置 web.Config  文件 补充内容 :     web 服务器, ASP.NET  对象

配置 配置 IIS IIS

do it, see it. do it, see it.

Page 29: 搭建 ASP.NET  开发环境 安装和配置 IIS 配置 web.Config  文件 补充内容 :     web 服务器, ASP.NET  对象

配置 配置 IIS IIS ,其信息自动保存在,其信息自动保存在 Web.config Web.config 文件中。文件中。

设置一下控件,如数据提供,设置一下控件,如数据提供,则配置也保存在 则配置也保存在 Web.config Web.config 文件文件中。中。

你可以不管它,但有必要理解它,你可以不管它,但有必要理解它,因为它有时也会影响程序出错!因为它有时也会影响程序出错!

Page 30: 搭建 ASP.NET  开发环境 安装和配置 IIS 配置 web.Config  文件 补充内容 :     web 服务器, ASP.NET  对象

2.2 Web.config 2.2 Web.config 文件配置文件配置 -- -- XMLXML文件文件

Web.configWeb.config 用来储存 用来储存 ASP.NET Web ASP.NET Web 应应用程序的配置信息(如身份验证方式),用程序的配置信息(如身份验证方式),

它可以出现在应用程序的每一个目录中。它可以出现在应用程序的每一个目录中。

通过通过 VS2008VS2008 新建一个新建一个 WebWeb 应用程序后,应用程序后, 默认情况下会在根目录自动创建一个默认的 默认情况下会在根目录自动创建一个默认的

Web.configWeb.config 文件,包括默认的配置设置,文件,包括默认的配置设置,所有的子目录都继承它的配置设置。所有的子目录都继承它的配置设置。

VS2005VS2005 不会自动创建不会自动创建 Web.configWeb.config 文件。 文件。

Page 31: 搭建 ASP.NET  开发环境 安装和配置 IIS 配置 web.Config  文件 补充内容 :     web 服务器, ASP.NET  对象

Web.config Web.config 文件 文件 ---VS2008---VS2008 <configSections><configSections> <sectionGroup name="system.web.extensions" <sectionGroup name="system.web.extensions"

type="System.Web.Configuration.SystemWebExtensionsSectionGroup, System.Web.Extensions, type="System.Web.Configuration.SystemWebExtensionsSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">

<sectionGroup name="scripting" type="System.Web.Configuration.ScriptingSectionGroup, <sectionGroup name="scripting" type="System.Web.Configuration.ScriptingSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">PublicKeyToken=31BF3856AD364E35">

<section name="scriptResourceHandler" <section name="scriptResourceHandler" type="System.Web.Configuration.ScriptingScriptResourceHandlerSection, System.Web.Extensions, type="System.Web.Configuration.ScriptingScriptResourceHandlerSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>requirePermission="false" allowDefinition="MachineToApplication"/>

<sectionGroup name="webServices" <sectionGroup name="webServices" type="System.Web.Configuration.ScriptingWebServicesSectionGroup, System.Web.Extensions, type="System.Web.Configuration.ScriptingWebServicesSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">

<section name="jsonSerialization" <section name="jsonSerialization" type="System.Web.Configuration.ScriptingJsonSerializationSection, System.Web.Extensions, type="System.Web.Configuration.ScriptingJsonSerializationSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="Everywhere" />requirePermission="false" allowDefinition="Everywhere" />

<section name="profileService" <section name="profileService" type="System.Web.Configuration.ScriptingProfileServiceSection, System.Web.Extensions, type="System.Web.Configuration.ScriptingProfileServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication" />requirePermission="false" allowDefinition="MachineToApplication" />

<section name="authenticationService" <section name="authenticationService" type="System.Web.Configuration.ScriptingAuthenticationServiceSection, System.Web.Extensions, type="System.Web.Configuration.ScriptingAuthenticationServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication" />requirePermission="false" allowDefinition="MachineToApplication" />

<section name="roleService" <section name="roleService" type="System.Web.Configuration.ScriptingRoleServiceSection, System.Web.Extensions, type="System.Web.Configuration.ScriptingRoleServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication" />requirePermission="false" allowDefinition="MachineToApplication" />

</sectionGroup></sectionGroup> </sectionGroup></sectionGroup> </sectionGroup></sectionGroup> </configSections> </configSections>

Page 32: 搭建 ASP.NET  开发环境 安装和配置 IIS 配置 web.Config  文件 补充内容 :     web 服务器, ASP.NET  对象

可以调试的可以调试的 --Web.config --Web.config 文件 文件 <?xml version="1.0" encoding="utf-8"?><?xml version="1.0" encoding="utf-8"?>

<configuration><configuration>

<system.web><system.web>

<compilation <compilation debug="true"debug="true">>

</compilation></compilation>

</system.web></system.web>

</configuration></configuration>

Page 33: 搭建 ASP.NET  开发环境 安装和配置 IIS 配置 web.Config  文件 补充内容 :     web 服务器, ASP.NET  对象

Web.ConfigWeb.Config 文件分为以下文件分为以下 44 种格种格式:式:

11 )) 配置节处理程序声明配置节处理程序声明:在:在 <configSections><configSections> 中。中。

22 )应用程序配置:)应用程序配置:在在 <appSetting><appSetting> 中。中。 可以定义应用程序的全局常量设置等信息。可以定义应用程序的全局常量设置等信息。

3) 3) 配置节设置: 配置节设置: 在在 <system.Web><system.Web> 中,中, 控制控制 Asp.netAsp.net 运行时的行为。运行时的行为。44 )配置节组:)配置节组:在在 <sectionGroup><sectionGroup> 中,中, 可以自定义分组,放到可以自定义分组,放到 <configSections><configSections> 内部内部

或其它或其它 <sectionGroup><sectionGroup> 标记的内部。标记的内部。

Page 34: 搭建 ASP.NET  开发环境 安装和配置 IIS 配置 web.Config  文件 补充内容 :     web 服务器, ASP.NET  对象

a) a) 自定义错误页自定义错误页1) 1) 新建一个网站,默认主页是新建一个网站,默认主页是 Default.aspxDefault.aspx ,添加一个用来,添加一个用来

显示错误信息的项显示错误信息的项 error.aspxerror.aspx 。。22 ) 打开) 打开 Web.ConfigWeb.Config 文件。文件。33 ) 在) 在 Web.ConfigWeb.Config 文件的文件的 <system.web><system.web>节点中添加代码节点中添加代码 :: <customErrors mode="on" defaultRedirect="<customErrors mode="on" defaultRedirect="error.asperror.asp

xx">">

当用户误操作或者网络地址发生错误时自动跳转到当用户误操作或者网络地址发生错误时自动跳转到 error.aspxerror.aspx页。页。

设置错误默认页字符串在设置错误默认页字符串在 :: <customErrors> <customErrors> 显示自定义错误 显示自定义错误 <customErrors/><customErrors/> 中。中。

Page 35: 搭建 ASP.NET  开发环境 安装和配置 IIS 配置 web.Config  文件 补充内容 :     web 服务器, ASP.NET  对象

需要设置以下两个属性:需要设置以下两个属性: ModeMode 属性:属性: On On 表示启用自定义错误信息,表示启用自定义错误信息, RemoteOnly RemoteOnly 表示仅向远程客户端显示自定义错误表示仅向远程客户端显示自定义错误 并且向本地主机显示并且向本地主机显示 ASP.NETASP.NET错误,错误, Off Off 以禁用自定义错误信息,以禁用自定义错误信息, 默认值为默认值为 RemoteOnlyRemoteOnly 。。

DefaultRedirectDefaultRedirect 属性:属性:用于指定网页出错时,浏览用于指定网页出错时,浏览器跳转的地址。器跳转的地址。

程序代码如下:程序代码如下: <customErrors mode="on" defaultRedirect="error.asp<customErrors mode="on" defaultRedirect="error.asp

x">x">

Page 36: 搭建 ASP.NET  开发环境 安装和配置 IIS 配置 web.Config  文件 补充内容 :     web 服务器, ASP.NET  对象

b) b) 配置配置 SessionSession 变量 变量 Session Session 会话会话 --- --- 访问者与主页的会话访问者与主页的会话 访问者访问者从到达从到达某个主页某个主页到离开为止到离开为止的的那段时间那段时间。。

每 一访问者都会单独获得一个每 一访问者都会单独获得一个 SessionSession 集合。集合。

在在 WebWeb 应用程序中,当一个用户访问该应用时,应用程序中,当一个用户访问该应用时, SSessionession 类型的变量可以供这个用户在该类型的变量可以供这个用户在该 WebWeb 应用应用的所有页面中共享数据。的所有页面中共享数据。

Session: Session: 会话,会期,学期,期间。会话,会期,学期,期间。

Page 37: 搭建 ASP.NET  开发环境 安装和配置 IIS 配置 web.Config  文件 补充内容 :     web 服务器, ASP.NET  对象

b) b) 配置配置 SessionSession 变量 变量 在在 WebWeb 应用程序中,当一个用户访问该应用时,应用程序中,当一个用户访问该应用时, SessionSession 变量可以供这个用户在所有页面中共享数变量可以供这个用户在所有页面中共享数据。据。

在在 Web.ConfigWeb.Config 文件的文件的 <system.web><system.web>节点中添节点中添加以下代码:加以下代码:

<sessionState mode="InProc" timeout="10"> <<sessionState mode="InProc" timeout="10"> </sessionState >/sessionState >

设置设置 SessionSession 变量的生命周期为变量的生命周期为 1010分钟。分钟。

Page 38: 搭建 ASP.NET  开发环境 安装和配置 IIS 配置 web.Config  文件 补充内容 :     web 服务器, ASP.NET  对象

设置属性设置属性 ModeMode 属性:属性: Off Off 表示禁止会话状态;表示禁止会话状态; Inproc Inproc 表示工作进程自身存储会话状态;表示工作进程自身存储会话状态; StateServer StateServer 会话信息存放在一个单独的会话信息存放在一个单独的 ASP.NETASP.NET 状态服务状态服务

中;中; SqlServer SqlServer 会话信息存放在会话信息存放在 SQL ServerSQL Server 数据库中。数据库中。

StateConnectionStringStateConnectionString 属性:属性: 用于设置用于设置 ASP.NETASP.NET 程序存储远程会话状态的服务器名,程序存储远程会话状态的服务器名, 默认是本地名。默认是本地名。

CookielessCookieless 属性:属性: True True 表示不使用表示不使用 CookieCookie 会话标识客户,会话标识客户, False False 表示启动会话状态。表示启动会话状态。

TimeoutTimeout 属性:属性:用于设置会话时间,超过改期限,会话自动中用于设置会话时间,超过改期限,会话自动中断。断。

默认为默认为 2020 ,指定,指定 SessionSession 变量的超时期限是变量的超时期限是 2020分钟。分钟。

Page 39: 搭建 ASP.NET  开发环境 安装和配置 IIS 配置 web.Config  文件 补充内容 :     web 服务器, ASP.NET  对象

c) c) 全球化设置全球化设置我们可以在我们可以在 Web.Config Web.Config 文件配置相应的设置,使网站符合当地的使用习惯,文件配置相应的设置,使网站符合当地的使用习惯,步骤如下:步骤如下:11 )新建一个网站,默认主页是)新建一个网站,默认主页是 Default.aspx.Default.aspx.22 )打开)打开 Web.ConfigWeb.Config 文件。文件。33 )在)在 Web.ConfigWeb.Config 文件的文件的 <system.web><system.web>节点中添加以下代码:节点中添加以下代码:

<globalization<globalization fileEncoding="gb2312"fileEncoding="gb2312" requestEncoding=" gb2312"requestEncoding=" gb2312" responseEncoding=" gb2312"responseEncoding=" gb2312" culture="zh-CN"/>culture="zh-CN"/>

使网站符合中文习惯。需要设置的属性如下。使网站符合中文习惯。需要设置的属性如下。

Page 40: 搭建 ASP.NET  开发环境 安装和配置 IIS 配置 web.Config  文件 补充内容 :     web 服务器, ASP.NET  对象

RequestEncodingRequestEncoding 属性:属性: 指定 指定 Request Request 请求的编码方式,请求的编码方式,默认为默认为 UTF-8 UTF-8 编码,编码, 大多数情况 大多数情况 requestEncoding requestEncoding 和 和 responseEncoding responseEncoding 属属

性的编码应该相同。性的编码应该相同。 ResponseEncodingResponseEncoding 属性:属性: 指定 指定 Response Response 响应的编码方式,默认为响应的编码方式,默认为 UTF-8 UTF-8 编码。编码。

FileEncodingFileEncoding 属性:属性: 指定扩展名指定扩展名 aspxaspx 文件默认的编码方式。文件默认的编码方式。

CultureCulture 属性:属性: 指定本地化的语系地区,不同的地区拥有不同的日期时间格指定本地化的语系地区,不同的地区拥有不同的日期时间格式、数字等默认的本地化设定。式、数字等默认的本地化设定。

Page 41: 搭建 ASP.NET  开发环境 安装和配置 IIS 配置 web.Config  文件 补充内容 :     web 服务器, ASP.NET  对象

d) d) 配置配置 AccessAccess 数据库连接数据库连接 AccessAccess数据库适用于建立中小型的数据库应用系统,数据库适用于建立中小型的数据库应用系统,

在开发一些中小型在开发一些中小型WebWeb 程序中应用相当广泛。程序中应用相当广泛。

本范例介绍如何在本范例介绍如何在 Web.Config Web.Config 文件配置文件配置 AccessAccess数据库连接,步骤如下:数据库连接,步骤如下:

11 )新建一个网站,默认主页是)新建一个网站,默认主页是 Default.aspx.Default.aspx.22 )打开)打开 Web.ConfigWeb.Config 文件。文件。33 )在)在 Web.ConfigWeb.Config 文件的文件的 <connectionStrings/><connectionStrings/>节节

点中添加以下代码连接点中添加以下代码连接 AccessAccess数据库:数据库:

Page 42: 搭建 ASP.NET  开发环境 安装和配置 IIS 配置 web.Config  文件 补充内容 :     web 服务器, ASP.NET  对象

<appsettings><appsettings><add key=”accessCon” value=” Provider=Microsoft.Jet,<add key=”accessCon” value=” Provider=Microsoft.Jet,

OLEDB.4.0;OLEDB.4.0; Data Source=|DataDirectory|dbData Source=|DataDirectory|db __ access.mdb”>access.mdb”></ appsettings > </ appsettings >

需要设置的属性如下:需要设置的属性如下:

ProviderProvider 属性:属性: 用于指定要使用的数据库引擎。用于指定要使用的数据库引擎。

Data SourceData Source 属性:属性: 用于指定用于指定 AccessAccess数据库文件在计算机中的物理位置。数据库文件在计算机中的物理位置。

Page 43: 搭建 ASP.NET  开发环境 安装和配置 IIS 配置 web.Config  文件 补充内容 :     web 服务器, ASP.NET  对象

e) e) 配置配置 SQL serverSQL server 数据库连接数据库连接

本范例介绍如何在本范例介绍如何在 Web.Config Web.Config 文件配置文件配置 SQL SQL ServerServer数据库连接,步骤如下:数据库连接,步骤如下:

1) 1) 新建一个网站,默认主页是新建一个网站,默认主页是 Default.aspx.Default.aspx.

2) 2) 打开打开 Web.ConfigWeb.Config 文件。文件。

3) 3) 在在 Web.ConfigWeb.Config 文件的文件的 <connectionStrings/><connectionStrings/>节点中添加以下代码连接节点中添加以下代码连接 SQL ServerSQL Server数据库。数据库。

Page 44: 搭建 ASP.NET  开发环境 安装和配置 IIS 配置 web.Config  文件 补充内容 :     web 服务器, ASP.NET  对象

<appsettings><appsettings> <add key=”sqlCon” value=” Data Source=(l<add key=”sqlCon” value=” Data Source=(l

ocal);ocal); Database=tddjgck; Uid=sa; Pwd=123”>Database=tddjgck; Uid=sa; Pwd=123”></ appsettings > </ appsettings >

Data SourceData Source 属性:属性:用于指定数据库服务器名。用于指定数据库服务器名。 DatabaseDatabase 属性:属性: 用于指定要连接的数据库名。 用于指定要连接的数据库名。 UidUid 属性:属性: 用于指定登录数据库服务器的用户名。 用于指定登录数据库服务器的用户名。 PwdPwd 属性:属性: 用于指定登录数据库服务器的密码。 用于指定登录数据库服务器的密码。

Page 45: 搭建 ASP.NET  开发环境 安装和配置 IIS 配置 web.Config  文件 补充内容 :     web 服务器, ASP.NET  对象

第第 22 章 补充内容章 补充内容

WEBWEB 服务器服务器

IIS—IIS— 一种一种WEBWEB 服务器服务器软件软件

ASP.NETASP.NET 对象简介对象简介

Page 46: 搭建 ASP.NET  开发环境 安装和配置 IIS 配置 web.Config  文件 补充内容 :     web 服务器, ASP.NET  对象

一 一 WEBWEB 服务器服务器 WEBWEB 服务器也称为服务器也称为WWWWWW 服务器,服务器, 主要功能是提供网上信息浏览服务。 主要功能是提供网上信息浏览服务。

WWW WWW 是 是 Internet Internet 的多媒体信息查询的多媒体信息查询工具,是 工具,是 Internet Internet 上近年才发展起来的上近年才发展起来的服务,也是发展最快和目前用的最广泛的服务,也是发展最快和目前用的最广泛的服务。服务。

URL URL 统一资源定位器统一资源定位器

Page 47: 搭建 ASP.NET  开发环境 安装和配置 IIS 配置 web.Config  文件 补充内容 :     web 服务器, ASP.NET  对象

WWW WWW 浏览器浏览器 // 服务器结服务器结构构

WWW WWW 采用的是采用的是 B/SB/S结构,结构, ISAPIISAPI是连接应用软件和是连接应用软件和 WebWeb服务器的标准技术。服务器的标准技术。

WWW浏览器

服务器

WWW(HTTP)服务器

ISAPI扩展asp.net

进程模型

ASP.NET 运行时.NET 运行时

URL请求

传输结果

客户机 Internet

html文件

ASP.NET 文件

Page 48: 搭建 ASP.NET  开发环境 安装和配置 IIS 配置 web.Config  文件 补充内容 :     web 服务器, ASP.NET  对象

静态资源静态资源不需要被服务器处理不需要被服务器处理

静态资源请求到达服务器静态资源请求到达服务器 ,, (通过(通过 HTTPHTTP 协议)协议) 服务器只需要从文件系统中找到他的内容,服务器只需要从文件系统中找到他的内容, 并且以字节流形式发送到客户端。并且以字节流形式发送到客户端。

静态资源静态资源 ::普通普通 HTMLHTML 页面页面 , , 图片,图片, javascript, CSS, XML, GMLjavascript, CSS, XML, GML 。。

服务器需要知道怎样去区分静态和动态资源,服务器需要知道怎样去区分静态和动态资源, 动态资源需要处理而不是直接发送回客户端。动态资源需要处理而不是直接发送回客户端。

因此出现了因此出现了 ISAPIISAPI扩展,扩展, ISAPIISAPI 是因特网服务应用程序编程的接口。 是因特网服务应用程序编程的接口。

Page 49: 搭建 ASP.NET  开发环境 安装和配置 IIS 配置 web.Config  文件 补充内容 :     web 服务器, ASP.NET  对象

ASP.NETASP.NET 与与 IISIIS之间的关系之间的关系 IIS IIS 通过 通过 ASP.NET ASP.NET 的进程模型(的进程模型( aspnet_isapi.daspnet_isapi.d

llll 组件 )对组件 )对 ASP.NET ASP.NET 文件的所有请求提供服务,文件的所有请求提供服务,

IISIIS映射映射 ----把每种文件扩展类型关联到特定的把每种文件扩展类型关联到特定的 ISAPISAPII扩展扩展 ::

当一个请求某种文件的请求到达,当一个请求某种文件的请求到达, IISIIS处理并转到处理并转到相应的相应的 ISAPIISAPI扩展,以确认这种请求能被处理。 扩展,以确认这种请求能被处理。

IIS IIS 不会处理服务器端的代码;而 不会处理服务器端的代码;而 ASP.NETASP.NET 进程进程模型处理服务器端代码,然后将输出返回给 模型处理服务器端代码,然后将输出返回给 IISIIS 。 。

Page 50: 搭建 ASP.NET  开发环境 安装和配置 IIS 配置 web.Config  文件 补充内容 :     web 服务器, ASP.NET  对象

aspnet_isapiaspnet_isapi 组件组件 .ASPX.ASPX 扩展名被映射到扩展名被映射到 aspnet_isapi aspnet_isapi 扩展扩展 ;;

在在 ASPXASPX 页页处理时段,这个组件负责执行处理时段,这个组件负责执行所有需要的任务去生成回送:所有需要的任务去生成回送:

1) 1) 收集请求信息,收集请求信息, 22 )) ASPXASPX 内部对象,内部对象, 33 )解析并执行)解析并执行 ASPXASPX 页面,页面, 最后以最后以 HTMLHTML形式返回结果形式返回结果给 给 IIS IIS 。 。

Page 51: 搭建 ASP.NET  开发环境 安装和配置 IIS 配置 web.Config  文件 补充内容 :     web 服务器, ASP.NET  对象

IISIIS 和和 ASP.NETASP.NET 从本质上讲,从本质上讲, ASP.NETASP.NET 本身并不依赖于本身并不依赖于 IIII

SS ,它提供一个独立的处理,它提供一个独立的处理 WebWeb请求的管请求的管道(道( PipelinePipeline ),),

但是,绝大部分基于但是,绝大部分基于 ASP.NETASP.NET 的的 WebWeb 应应用都部署于用都部署于 IISIIS 下,下,

IISIIS 和和 ASP.NETASP.NET 协同工作处理协同工作处理 WebWeb请求。请求。

Page 52: 搭建 ASP.NET  开发环境 安装和配置 IIS 配置 web.Config  文件 补充内容 :     web 服务器, ASP.NET  对象

IISIIS 和和 ASP.NETASP.NET 协同工协同工作作 ::

1) 1) IISIIS 收到 收到 http http Request -- Request -- aspxaspx 页面;页面;22 )) ISAPIISAPI 扩展扩展会创建会创建 ASP.NETASP.NET 的工作进的工作进

程(如果该进程尚未启动),该工作进程程(如果该进程尚未启动),该工作进程为为 aspnet.exeaspnet.exe 。。

33 )) IISIIS 与工作进程之间通过与工作进程之间通过 命名管道进程通信。 命名管道进程通信。

44 )在工作进程初始化过程中,)在工作进程初始化过程中, .NET .NET 运行时(运行时( CLRCLR )被加载,)被加载, 从而构建了一个托管的环境。从而构建了一个托管的环境。

Page 53: 搭建 ASP.NET  开发环境 安装和配置 IIS 配置 web.Config  文件 补充内容 :     web 服务器, ASP.NET  对象

ASP.NETASP.NET 运行时运行时55 ) 对于某个) 对于某个 WebWeb 的初次请求,的初次请求, CLRCLR 会为会为其创建一个其创建一个 AppDomainAppDomain ;;

66 )在此)在此 AppDomainAppDomain 中,中, ASP.NETASP.NET 运行运行时时 ---- HTTPHTTP 运行时(运行时( HTTP RuntimeHTTP Runtime )被)被加载并用以创建相应的应用;加载并用以创建相应的应用;

77 )) ASP.NETASP.NET 运行时运行时处理 处理 aspxaspx 请求请求 ,, 结果结果给 给 IIS;IIS;

88 )) IISIIS 用用 Response Response 把把结果结果 HTMLHTML 发给发给 IEIE 。。

Page 54: 搭建 ASP.NET  开发环境 安装和配置 IIS 配置 web.Config  文件 补充内容 :     web 服务器, ASP.NET  对象

使用最多的 使用最多的 web web 服务器软件 有两服务器软件 有两个:个:

微软的微软的 IISIIS ,和,和 Apache--Apache--HTTP ServerHTTP Server

Apache Apache 世界使用排名第一世界使用排名第一 .. 阿帕奇 阿帕奇 ---- 是印第安人的一个部落是印第安人的一个部落 .. ApacheApache 软件基金会(软件基金会( Apache Software FoApache Software Fo

undationundation ,简称为,简称为 ASFASF ),), 是专门为运作一个开源软件 是专门为运作一个开源软件 Apache Apache 的团体的团体

提供支持的提供支持的非盈利性组织非盈利性组织,, 这个开源软件项目就是 这个开源软件项目就是 Apache Apache 项目。 项目。

Page 55: 搭建 ASP.NET  开发环境 安装和配置 IIS 配置 web.Config  文件 补充内容 :     web 服务器, ASP.NET  对象

IISIIS 服务器服务器 WEBWEB 服务器也称为服务器也称为WWW(WORLD WIDWWW(WORLD WID

E WEB)E WEB) 服务器,主要功能是提供网上信息服务器,主要功能是提供网上信息浏览服务。 浏览服务。

Page 56: 搭建 ASP.NET  开发环境 安装和配置 IIS 配置 web.Config  文件 补充内容 :     web 服务器, ASP.NET  对象

二 二 ASP.NETASP.NET 对象简介对象简介 ASP.NETASP.NET 定义了很多内置对象,它们都是全局定义了很多内置对象,它们都是全局

对象,不必事先声明就可以直接使用。每个对象对象,不必事先声明就可以直接使用。每个对象都有各自的属性、方法、或事件。都有各自的属性、方法、或事件。例如:例如: System.Web.HttpRequest System.Web.HttpRequest 对象对象– – ReqReq

uestuest

PagePage 对象,以及对象,以及 PagePage 内置的内置的 55 个对象,分别个对象,分别是:请求、响应、应用程序、会话、服务器是:请求、响应、应用程序、会话、服务器对象对象。。

RequestRequest 、 、 Response Response 、 、 ApplicationApplication 、、 SessionSession 、、 (( 集合类型的对象集合类型的对象 ) ) Server Server 对象。 对象。

Page 57: 搭建 ASP.NET  开发环境 安装和配置 IIS 配置 web.Config  文件 补充内容 :     web 服务器, ASP.NET  对象

RequestRequest 获取来自浏览器的信息。获取来自浏览器的信息。 ResponseResponse         向浏览器输出信息 向浏览器输出信息 : : 写到当前写到当前 HTMLHTML 页中。页中。 ServerServer 提供服务器端的一些属性和方法。提供服务器端的一些属性和方法。 Application Application 记录整个网站的全局信息,如上线人数等。记录整个网站的全局信息,如上线人数等。 Session---Session--- 用户访问网站用户访问网站 用于存储特定用户访问网站的会话信息。用于存储特定用户访问网站的会话信息。

对象简介对象简介

Page 58: 搭建 ASP.NET  开发环境 安装和配置 IIS 配置 web.Config  文件 补充内容 :     web 服务器, ASP.NET  对象

Page Page 类包含了类包含了 55 个对象:个对象:class class PagePage : TemplateControl, IHttpHandler : TemplateControl, IHttpHandler{{ public HttpRequest public HttpRequest Request Request { get; }{ get; } public HttpResponse public HttpResponse Response Response { get; }{ get; } public HttpApplicationStatepublic HttpApplicationState Application Application { get; } { get; } public virtual HttpSessionState public virtual HttpSessionState SessionSession { get; } { get; } public HttpServerUtility public HttpServerUtility ServerServer { get; } { get; } …… ……....}}

sealed class HttpRequestsealed class HttpRequest, , sealed class HttpResponsesealed class HttpResponse , ….. , …..

Page 59: 搭建 ASP.NET  开发环境 安装和配置 IIS 配置 web.Config  文件 补充内容 :     web 服务器, ASP.NET  对象

Page Page 类—类— WebSite1_vs2008WebSite1_vs2008 例子例子(do it)(do it)

public partial class _Default : System.Web.UI.Page public partial class _Default : System.Web.UI.Page {{ protected void Page_Load(object sender, EventArgs e)protected void Page_Load(object sender, EventArgs e) {{ Response.Write("Response.Write(" “获取客户端信息如下:“获取客户端信息如下: + + "<br>" "<br>" );); Response.Write("<br>");Response.Write("<br>");

Response.Write("Response.Write(" 客户端客户端 IPIP 地址:地址: " + " + Request.UserHostAddressRequest.UserHostAddress););

Response.Write("Response.Write(" 当前文件服务端物理路径:当前文件服务端物理路径: " + " + Request.PhysicalApplicationPathRequest.PhysicalApplicationPath););

}}}}

Page 60: 搭建 ASP.NET  开发环境 安装和配置 IIS 配置 web.Config  文件 补充内容 :     web 服务器, ASP.NET  对象

PagePage 对象 对象 ---- 用于操作整个页面用于操作整个页面 PagePage 对象对应对象对应 Web FormWeb Form 窗体,主要用来设窗体,主要用来设

置与网页有关的各种属性、方法和事件。置与网页有关的各种属性、方法和事件。

ASP.NETASP.NET分析分析Web FormWeb Form 窗体文件代码,产窗体文件代码,产生的类是生的类是 System.Web.UI.FormSystem.Web.UI.Form 的派生类,的派生类,

因此在因此在 Web FormWeb Form 窗体文件中可以使用窗体文件中可以使用 PagePage类的属性、方法和事件。 类的属性、方法和事件。

Page 61: 搭建 ASP.NET  开发环境 安装和配置 IIS 配置 web.Config  文件 补充内容 :     web 服务器, ASP.NET  对象

PagePage 对象的主要属性 对象的主要属性

Page 62: 搭建 ASP.NET  开发环境 安装和配置 IIS 配置 web.Config  文件 补充内容 :     web 服务器, ASP.NET  对象

PagePage 对象的主要方法 (对象的主要方法 ( 55 个)个)

Page 63: 搭建 ASP.NET  开发环境 安装和配置 IIS 配置 web.Config  文件 补充内容 :     web 服务器, ASP.NET  对象

常见的常见的 PagePage 对象的事件 对象的事件

Page 64: 搭建 ASP.NET  开发环境 安装和配置 IIS 配置 web.Config  文件 补充内容 :     web 服务器, ASP.NET  对象

关于关于 pagepage 对象事件的一个例子对象事件的一个例子public partial class _Default : System.Web.UI.Page public partial class _Default : System.Web.UI.Page {{ private void Page_Load(object sender, EventArgs private void Page_Load(object sender, EventArgs

e)e) { { Response.Write("Reaching Load"+"<br>" );Response.Write("Reaching Load"+"<br>" ); }}

private void Page_Init(object sender, EventArgs private void Page_Init(object sender, EventArgs e)e)

{ { Response.Write("Reaching Init"+"<br>");Response.Write("Reaching Init"+"<br>"); }}}}

Page 65: 搭建 ASP.NET  开发环境 安装和配置 IIS 配置 web.Config  文件 补充内容 :     web 服务器, ASP.NET  对象

程序运行结果及解析程序运行结果及解析

从结果可看出,从结果可看出, InitInit事件发生在事件发生在 LoadLoad事件之前。事件之前。

当加载当加载Web Web 页时,首先要触发页时,首先要触发 InitInit事件,对网页进行初始化;事件,对网页进行初始化;完成初始化后就会加载网页,这时会触发完成初始化后就会加载网页,这时会触发 LoadLoad事件。事件。

InitInit 与与 LoadLoad事件也有区别,事件也有区别, InitInit事件只会在第一次加载事件只会在第一次加载WeWebb 页时触发,而页时触发,而 LoadLoad事件则在事件则在 WebWeb 页每次被加载的时候都页每次被加载的时候都触发。 触发。

Page 66: 搭建 ASP.NET  开发环境 安装和配置 IIS 配置 web.Config  文件 补充内容 :     web 服务器, ASP.NET  对象

11 )) RequestRequest 对象 对象 RequestRequest 对象是从客户端得到数据对象是从客户端得到数据 ..

RequestRequest 对象的属性和方法比较多,常见的为:对象的属性和方法比较多,常见的为: UserAgent UserAgent 传回客户端浏览器的版本信息;传回客户端浏览器的版本信息;

UserHostAddress UserHostAddress 传回客户端机器传回客户端机器 IPIP 地址;地址; UserHostName UserHostName 传回客户端机器的传回客户端机器的 DNSDNS 名称;名称;

PhysicalApplicationPathPhysicalApplicationPath 传回目前请求网页在传回目前请求网页在 ServerServer端的真实路径。端的真实路径。

Page 67: 搭建 ASP.NET  开发环境 安装和配置 IIS 配置 web.Config  文件 补充内容 :     web 服务器, ASP.NET  对象

RequestRequest 对象常见的属性以及方法 对象常见的属性以及方法 从浏览器中获取数据从浏览器中获取数据

利用利用 RequestRequest 方法,可以读取页面提交过来的数方法,可以读取页面提交过来的数据。提交的数据有两种形式:据。提交的数据有两种形式:

一种是通过一种是通过 FormForm 表单提交过来,表单提交过来,另一种是通过超级链接后面的参数提交过来,另一种是通过超级链接后面的参数提交过来,

两种方式都都可以利用两种方式都都可以利用 RequestRequest 对象读取。对象读取。

Page 68: 搭建 ASP.NET  开发环境 安装和配置 IIS 配置 web.Config  文件 补充内容 :     web 服务器, ASP.NET  对象

得到客户端的信息得到客户端的信息利用利用 RequestRequest 对象内置的属性,可以得到一些客户端对象内置的属性,可以得到一些客户端的信息,如客户端浏览器版本和客户端地址等等。的信息,如客户端浏览器版本和客户端地址等等。

protected void Page_Load(object sender, EventArgs e)protected void Page_Load(object sender, EventArgs e){{

Response.Write("Response.Write("获取客户端信息如下:获取客户端信息如下: \n"); \n"); Response.Write("Response.Write("客户端浏览器:客户端浏览器: "+"+Request.UserAgentRequest.UserAgent);); Response.Write("<br>");Response.Write("<br>"); Response.Write("Response.Write("客户端客户端 IPIP 地址:地址: " + " + Request.UserHostRequest.UserHost

AddressAddress);); Response.Write("<br>");Response.Write("<br>"); Response.Write(“Response.Write(“ 当前文件服务端物理路径:当前文件服务端物理路径: "+Req"+Req

uest.PhysicalApplicationPath);uest.PhysicalApplicationPath); }}

Page 69: 搭建 ASP.NET  开发环境 安装和配置 IIS 配置 web.Config  文件 补充内容 :     web 服务器, ASP.NET  对象

运行结果图运行结果图

Page 70: 搭建 ASP.NET  开发环境 安装和配置 IIS 配置 web.Config  文件 补充内容 :     web 服务器, ASP.NET  对象

22 )) ResponseResponse 对象 对象 ResponseResponse 向客户端浏览器发送数据。向客户端浏览器发送数据。 将服务器的数据以将服务器的数据以 HTMLHTML格式发送到用户端浏览器。格式发送到用户端浏览器。

它与它与 RequestRequest 组成了一对接收、发送数据的对象,组成了一对接收、发送数据的对象, 这也是实现动态的基础。这也是实现动态的基础。 例如 例如重定向:重定向: Response.Redirect("Response.Redirect("http://www.163.net/http://www.163.net/"); ");

向客户端发送字符串向客户端发送字符串 :: Response.Write(st); Response.Write(st);

Page 71: 搭建 ASP.NET  开发环境 安装和配置 IIS 配置 web.Config  文件 补充内容 :     web 服务器, ASP.NET  对象

33 )) ApplicationApplication 对象—集合对象—集合 — — Web.configWeb.config 中的中的

<<appSettingsappSettings>> 同一虚拟目录下的所有同一虚拟目录下的所有 ASP.NETASP.NET 的文件构的文件构

成了成了 ASP.NETASP.NET 应用程序。应用程序。

ApplicationApplication 对象对象 :: a) a) 在应用程序的用户之间共享信息,在应用程序的用户之间共享信息, b) b) 以及在服务器运行期间持久保存数据,以及在服务器运行期间持久保存数据,

c) c) 可用于在应用程序启动和停止时触发过程可用于在应用程序启动和停止时触发过程的事件。的事件。

Page 72: 搭建 ASP.NET  开发环境 安装和配置 IIS 配置 web.Config  文件 补充内容 :     web 服务器, ASP.NET  对象

1 1 保存保存 ApplicationApplication 对象信息对象信息 :: Application[“Application[“ 键名”键名” ] = ] = 值值 ; ; 或或 : Application.Set(“: Application.Set(“ 键名”,值键名”,值 ); );

2 2 获取获取 ApplicationApplication 对象信息 对象信息 变量名 变量名 = Application[“= Application[“ 键名”键名” ];];或:变量名 或:变量名 = Application.Get(“= Application.Get(“ 键名”键名” ); );

3 3 删除一个键 删除一个键 Application.Remove(“Application.Remove(“ 键名”键名” ); ); 4 4 删除所有键 删除所有键 Application.RemoveAll() Application.RemoveAll() 或或 : Application.Clear() : Application.Clear()

Page 73: 搭建 ASP.NET  开发环境 安装和配置 IIS 配置 web.Config  文件 补充内容 :     web 服务器, ASP.NET  对象

使用使用 ApplicationApplication 事件事件 (do it (do it 练习练习 1)1)

在在 ASP.NET ASP.NET 程序中可以包含一个程序中可以包含一个 Global.asax Global.asax ------称作 “全局应用程序类”。称作 “全局应用程序类”。用添加新项加它。用添加新项加它。

它包含用于响应 它包含用于响应 ASP.NETASP.NET引发的应用程序级别事件引发的应用程序级别事件的代码。 的代码。

Global.asaxGlobal.asax 使用了微软的使用了微软的 HTMLHTML拓展拓展 <SCRIPT><SCRIPT>标记来限制脚本,而不能用标记来限制脚本,而不能用 <% %><% %>符号引用事件代符号引用事件代码。 码。

Global.asax Global.asax 文件提供了文件提供了 33 个个 ApplicationApplication事件,事件, 22 个个 SessionSession事件。事件。

Page 74: 搭建 ASP.NET  开发环境 安装和配置 IIS 配置 web.Config  文件 补充内容 :     web 服务器, ASP.NET  对象

Application_Start Application_Start 在应用程序启动时激发 在应用程序启动时激发

Application_End Application_End 在应用程序结束时激发 在应用程序结束时激发

Application_Error Application_Error 在发生错误时激发 在发生错误时激发

Session_StartSession_Start 在用户访问网页时激发在用户访问网页时激发Session_EndSession_End在用户结束访问网页时激发在用户结束访问网页时激发

Page 75: 搭建 ASP.NET  开发环境 安装和配置 IIS 配置 web.Config  文件 补充内容 :     web 服务器, ASP.NET  对象

利用利用 ApplicationApplication 对象统计访问人数对象统计访问人数void Application_Start(object sender, EventArgs e) void Application_Start(object sender, EventArgs e) {{ string stcount= System.IO.File.ReadAllText("c:/count.txt"); string stcount= System.IO.File.ReadAllText("c:/count.txt");

Application["allCount"] = int.Parse(stcount); Application["allCount"] = int.Parse(stcount); //Application["nowCount"] = 0; //Application["nowCount"] = 0; }}

void Session_Start(object sender, EventArgs e) void Session_Start(object sender, EventArgs e) { //{ // 在新会话启动时运行的代码在新会话启动时运行的代码 Application.Lock(); //Application.Lock(); // 使用加锁功能使用加锁功能 ,,其他用户不能访问。其他用户不能访问。 Application["allCount"] = int.Parse(Application["allCount"].ToStringApplication["allCount"] = int.Parse(Application["allCount"].ToString

()) + 1;()) + 1; //// 在线人数加在线人数加 11 //Application["nowCount"] = int.Parse(Application["nowCount"].ToSt//Application["nowCount"] = int.Parse(Application["nowCount"].ToSt

ring()) + 1;ring()) + 1; Application.UnLock(); //Application.UnLock(); //解锁。 解锁。 } }

Page 76: 搭建 ASP.NET  开发环境 安装和配置 IIS 配置 web.Config  文件 补充内容 :     web 服务器, ASP.NET  对象

利用利用 ApplicationApplication 对象统计访问对象统计访问人数人数

void Application_End(object sender, Evevoid Application_End(object sender, EventArgs e) ntArgs e)

{{ //// 在在 IISIIS 关闭时运行的代码关闭时运行的代码 System.IO.File.WriteAllText("c:/count.txt", ApplicatiSystem.IO.File.WriteAllText("c:/count.txt", Applicati

on["allCount"].ToString() );on["allCount"].ToString() ); }}

Application_End() Application_End() 没有运行,没有运行, why?why?关闭关闭 VSVS时,没有触发它。时,没有触发它。只有关闭只有关闭 IISIIS仿真器,触发它。见右图。仿真器,触发它。见右图。

Page 77: 搭建 ASP.NET  开发环境 安装和配置 IIS 配置 web.Config  文件 补充内容 :     web 服务器, ASP.NET  对象

一般有多个用户浏览一般有多个用户浏览 WebWeb 服务器的网站。服务器的网站。 当每个用户首次与这台当每个用户首次与这台 WebWeb 服务器建立连接时,服务器建立连接时,他就与这个服务器建立了一个他就与这个服务器建立了一个 SessionSession ,同时服务,同时服务器会自动为其分配一个器会自动为其分配一个 SessionIDSessionID ,用以标识这,用以标识这个用户的唯一身份。个用户的唯一身份。

SessionSession 对象的变量只是对一个用户有效,不同的对象的变量只是对一个用户有效,不同的用户的会话信息用不同的用户的会话信息用不同的 SessionSession 对象的变量存储。对象的变量存储。

在网络环境下在网络环境下 SessionSession 对象的变量是有生命周期的,对象的变量是有生命周期的,如果在规定的时间没有对如果在规定的时间没有对 SessionSession 对象的变量刷新,对象的变量刷新,系统会终止这些变量。 系统会终止这些变量。

4) Session4) Session 对象 对象 --“--“ 会话”会话”

Page 78: 搭建 ASP.NET  开发环境 安装和配置 IIS 配置 web.Config  文件 补充内容 :     web 服务器, ASP.NET  对象

SessionSession即会话,是指一个用户在一段即会话,是指一个用户在一段时间内对某一个网站的一次访问。 时间内对某一个网站的一次访问。

所有的连接用户(到本网站)只公用一个所有的连接用户(到本网站)只公用一个 ApplicatApplicationion 对象,对象,

而而每个连接用户都拥有一个自己的每个连接用户都拥有一个自己的 SessionSession 对象对象;;

““ 会话” 是指用户在浏览本网站时,从进入网站到会话” 是指用户在浏览本网站时,从进入网站到退出的这段交往时间。默认时间为退出的这段交往时间。默认时间为 2020分钟,用户退分钟,用户退出后自动结束。出后自动结束。

在在 SessionSession 中变量可以中变量可以在这段时间内保留其值,并可在这段时间内保留其值,并可以在各个页面中使用。以在各个页面中使用。

因为这种特点,因为这种特点, SessionSession 常用于用户在页面之间进常用于用户在页面之间进行参数传递,用户身份认证,记录程序状态等。 行参数传递,用户身份认证,记录程序状态等。

Page 79: 搭建 ASP.NET  开发环境 安装和配置 IIS 配置 web.Config  文件 补充内容 :     web 服务器, ASP.NET  对象

SessionSession 对象常用属性与方法 对象常用属性与方法 Abandon()Abandon() :此方法结束当前的会话,清除会话:此方法结束当前的会话,清除会话

中的所有信息。中的所有信息。

Clear()Clear() :清除会话中所有信息,不结束会话。:清除会话中所有信息,不结束会话。

IsNewSessionIsNewSession :如果在用户访问当前页面时创:如果在用户访问当前页面时创建了会话,则此属性返回建了会话,则此属性返回 true,true, 在使用会话前需在使用会话前需要使用某些数据初始化会话时,该属性很有用。要使用某些数据初始化会话时,该属性很有用。

TimeoutTimeout :此属性在会话结束之前以分钟为单位:此属性在会话结束之前以分钟为单位获取和设置闲置时间。默认时间为获取和设置闲置时间。默认时间为 2020分钟。 分钟。

Page 80: 搭建 ASP.NET  开发环境 安装和配置 IIS 配置 web.Config  文件 补充内容 :     web 服务器, ASP.NET  对象

1 1 保存信息保存信息 :: Session[“Session[“ 键名”键名” ] = ] = 值值 ; ; 或或 : Session.Add(“: Session.Add(“ 键名”,值键名”,值 ); );

2 2 获取信息 获取信息 变量名 变量名 = Session[“= Session[“ 键名”键名” ];];

3 3 删除一个键 删除一个键 Session.Remove(“Session.Remove(“ 键名”键名” ); ); 4 4 删除所有键 删除所有键 Session.RemoveAll() Session.RemoveAll()

Page 81: 搭建 ASP.NET  开发环境 安装和配置 IIS 配置 web.Config  文件 补充内容 :     web 服务器, ASP.NET  对象

““ 忘记一切” 是忘记一切” 是 webweb 服务器服务器最重要的处理方法最重要的处理方法

11 )客户申请页面)客户申请页面 , Web, Web 服务器接受请求。服务器接受请求。2) 2) 服务器处理网页代码服务器处理网页代码 , , 将结果转换成将结果转换成 HTMLHTML 页面页面 ; ; 3) 3) 服务器向客户送回被申请的页面,服务器向客户送回被申请的页面, 然后断开与客户之间的联系:然后断开与客户之间的联系:“忘记一“忘记一切”切”

任何二个任何二个请求是孤立的,不相干的请求。请求是孤立的,不相干的请求。

Page 82: 搭建 ASP.NET  开发环境 安装和配置 IIS 配置 web.Config  文件 补充内容 :     web 服务器, ASP.NET  对象

SessionSession 的发明是填补的发明是填补 HTTPHTTP 的局的局限限

HTTPHTTP 是一种无状态的通讯协议是一种无状态的通讯协议 在在 HTTPHTTP 协议中不允许服务器跟踪用户请求。协议中不允许服务器跟踪用户请求。

在服务器完成响应用户的请求后,服务器不能在服务器完成响应用户的请求后,服务器不能持续与该浏览器保持连接。持续与该浏览器保持连接。

从网站的观点上看,每一个新的请求都是单从网站的观点上看,每一个新的请求都是单独存在的,因此,当用户在多个主页间转换时,独存在的,因此,当用户在多个主页间转换时,就根本无法知道他的身份。就根本无法知道他的身份。

Page 83: 搭建 ASP.NET  开发环境 安装和配置 IIS 配置 web.Config  文件 补充内容 :     web 服务器, ASP.NET  对象

例如用户在登录页输入了用户名和口令,跳转例如用户在登录页输入了用户名和口令,跳转到下载页时,用户名和口令就丢失了!到下载页时,用户名和口令就丢失了!

如果把用户名和口令保存到变量中:如果把用户名和口令保存到变量中: Session[“name”]=username;Session[“name”]=username; Session[“password”]=password;Session[“password”]=password;

当用户在当用户在 WebWeb 页之间跳转时,页之间跳转时, 或在一个动态页内发请求时(相当是不同页)或在一个动态页内发请求时(相当是不同页) ,, 存储在存储在 SessionSession 对象中的变量将不会丢失,对象中的变量将不会丢失, 而是在整个用户会话中一直存在下去。而是在整个用户会话中一直存在下去。

使用使用 SessionSession 变量,存储用户的信变量,存储用户的信息息

Page 84: 搭建 ASP.NET  开发环境 安装和配置 IIS 配置 web.Config  文件 补充内容 :     web 服务器, ASP.NET  对象

网页是无状态的网页是无状态的 ---- 网页变量和控件的值不会网页变量和控件的值不会保存在服务器中。保存在服务器中。

ASP.NETASP.NET 主要用 主要用 SessionSession 和和 ApplicationApplication保存和管理状态信息。保存和管理状态信息。

见文章:见文章: 在两个在两个 ASP.NETASP.NET 页面之间传递变量页面之间传递变量 .doc.doc

状态管理状态管理

Page 85: 搭建 ASP.NET  开发环境 安装和配置 IIS 配置 web.Config  文件 补充内容 :     web 服务器, ASP.NET  对象

55 )) ServerServer 对象 对象 — — Web.configWeb.config 中的中的

<system.webServer><system.webServer>

ServerServer 对象提供了服务器上的方法和属性对象提供了服务器上的方法和属性的访问。的访问。

其中大多数方法作为实用程序的功能服务。其中大多数方法作为实用程序的功能服务。

例如: 例如: MapPath()MapPath() 方法:方法: 把虚拟路径变为实际路径。把虚拟路径变为实际路径。

Page 86: 搭建 ASP.NET  开发环境 安装和配置 IIS 配置 web.Config  文件 补充内容 :     web 服务器, ASP.NET  对象

ServerServer 对象的属性 对象的属性

Page 87: 搭建 ASP.NET  开发环境 安装和配置 IIS 配置 web.Config  文件 补充内容 :     web 服务器, ASP.NET  对象

ServerServer 对象的常用方法 对象的常用方法

Page 88: 搭建 ASP.NET  开发环境 安装和配置 IIS 配置 web.Config  文件 补充内容 :     web 服务器, ASP.NET  对象

WebWeb 程序程序与与桌面程序桌面程序的不同的不同 1 1 1 1 )最大的差别是)最大的差别是“状态”“状态” 桌面程序是有桌面程序是有“状态”“状态”的—字段和变量的—字段和变量而而 HTTPHTTP 是无是无“状态”“状态”的协议,的协议,所以所以 WebWeb 程序程序的字段和变量无法保存的字段和变量无法保存“状“状

态”。态”。

看一个例子。看一个例子。

Page 89: 搭建 ASP.NET  开发环境 安装和配置 IIS 配置 web.Config  文件 补充内容 :     web 服务器, ASP.NET  对象

public partial class _Default : System.Web.UI.Page public partial class _Default : System.Web.UI.Page {{ string st;string st; // st // st无法保存状态无法保存状态 protected void SaveBtn_Click(object sender, protected void SaveBtn_Click(object sender,

EventArgs e)EventArgs e) { st = TextBox1.Text; }{ st = TextBox1.Text; } protected void GetBtn_Click(object sender, protected void GetBtn_Click(object sender,

EventArgs e)EventArgs e) { Label1.Text = st; }{ Label1.Text = st; }}}

stst 字段无法保存状态字段无法保存状态

Page 90: 搭建 ASP.NET  开发环境 安装和配置 IIS 配置 web.Config  文件 补充内容 :     web 服务器, ASP.NET  对象

public partial class _Default : System.Web.UI.Page public partial class _Default : System.Web.UI.Page {{ // // TextBox1.TextTextBox1.Text保存了状态保存了状态 protected void GetBtn_Click(object sender, EventArgs protected void GetBtn_Click(object sender, EventArgs

e)e) { Label1.Text = TextBox1.Text; }{ Label1.Text = TextBox1.Text; }}}在在 TextBoxTextBox 中输入”中输入” Hello”Hello” 后,后,点击“获取字符串”按钮,点击“获取字符串”按钮, LabelLabel 中即可显示”中即可显示” Hello”Hello”

aspxaspx 控件可以保存状态控件可以保存状态

Page 91: 搭建 ASP.NET  开发环境 安装和配置 IIS 配置 web.Config  文件 补充内容 :     web 服务器, ASP.NET  对象

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" ><html xmlns="http://www.w3.org/1999/xhtml" ><head><title><head><title>无标题页无标题页 </title></title></head></head><body><body> <form name="form1" method="post" action="Default.aspx" id="form1"><form name="form1" method="post" action="Default.aspx" id="form1"><div><div> 页的状态页的状态<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" <input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE"

value="/wEPDwULLTE0NjQxNDECAgMPZBYCAgcPOGnFpCWWIaXr0Noaonb+KGZvalue="/wEPDwULLTE0NjQxNDECAgMPZBYCAgcPOGnFpCWWIaXr0Noaonb+KGZn" />n" />

</div></div>

<div><div> TextBoxTextBox 的状态的状态 <input type="hidden" name="__EVENTVALIDATION" id="__EVENTVALIDATION" <input type="hidden" name="__EVENTVALIDATION" id="__EVENTVALIDATION"

value="/wEWBAK7zZ1DArWw59QMAuzRsusGAuH95poBPuIX08SzjSIF76LcwFypnavalue="/wEWBAK7zZ1DArWw59QMAuzRsusGAuH95poBPuIX08SzjSIF76LcwFypnauSeKI=" />uSeKI=" />

</div></div>

<div> <div> &nbsp;<input type="submit" name="SaveBtn" value="&nbsp;<input type="submit" name="SaveBtn" value="保存字符串保存字符串 " "

id="SaveBtn" />id="SaveBtn" /> <input name="TextBox1" type="text" value="Hello" id="TextBox1" /><br /><input name="TextBox1" type="text" value="Hello" id="TextBox1" /><br /> <br /> <br /> &nbsp;<input type="submit" name="GetBtn" value="&nbsp;<input type="submit" name="GetBtn" value="获取字符串获取字符串 " id="GetBtn" />" id="GetBtn" /> <span id="Label1">Hello</span><br /><span id="Label1">Hello</span><br /> </div></div> </form></form></body></body></html></html>

default.aspx default.aspx 在在 IEIE 下看到的下看到的 HTMLHTML代码。代码。

Page 92: 搭建 ASP.NET  开发环境 安装和配置 IIS 配置 web.Config  文件 补充内容 :     web 服务器, ASP.NET  对象

public partial class _Default : System.Web.UI.Page public partial class _Default : System.Web.UI.Page {{ // // TextBox1.TextTextBox1.Text保存了状态保存了状态 protected void protected void PagePage__LoadLoad(object sender, EventArgs e)(object sender, EventArgs e) { Label1.Text = TextBox1.Text; }{ Label1.Text = TextBox1.Text; }}}

在在 TextBoxTextBox 中输入”中输入” Hello”Hello” 后回车,后回车, LabelLabel 中即可显示”中即可显示” HellHello”o”

也可以在也可以在 Page_LoadPage_Load 中获得状态中获得状态前提是:前提是: AutoEventWireup=AutoEventWireup=

““truetrue""

Page 93: 搭建 ASP.NET  开发环境 安装和配置 IIS 配置 web.Config  文件 补充内容 :     web 服务器, ASP.NET  对象

<%@ Page Language="C#" <%@ Page Language="C#" AutoEventWireup=“AutoEventWireup=“truetrue"" CodeFile="Default.aspx.cs" Inherits="_Default" %>CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" ><html xmlns="http://www.w3.org/1999/xhtml" ><head runat="server"><head runat="server"> <title><title> 无标题页无标题页 </title></title></head></head><body><body> <form id="form1" runat="server"><form id="form1" runat="server"> <div><div> <asp:TextBox ID="TextBox1" runat="server"><asp:TextBox ID="TextBox1" runat="server"> </asp:TextBox></asp:TextBox> <br /><br /> <asp:Label ID="Label1" runat="server" <asp:Label ID="Label1" runat="server"

Text="Label"></asp:Label>Text="Label"></asp:Label> </div></div> </form></form></body></body></html></html>

Page 94: 搭建 ASP.NET  开发环境 安装和配置 IIS 配置 web.Config  文件 补充内容 :     web 服务器, ASP.NET  对象

领悟 领悟 AutoEventWireupAutoEventWireup 如果 如果 Page Page 的 的 AutoEventWireup AutoEventWireup 属性被设置为 属性被设置为 truetrue ,, 该页将自动调用页事件,即 该页将自动调用页事件,即 Page_InitPage_Init 和 和 Page_Load Page_Load 方法。方法。

当当 AutoEventWireup=“false”AutoEventWireup=“false” ,, 后台后台 InitializeComponent()InitializeComponent() 中无中无 Page.Load += new EventHandler(Page_Load); Page.Load += new EventHandler(Page_Load); 将不能触发将不能触发 Page.LoadPage.Load 事件。事件。

当然你可以自行添加:当然你可以自行添加: public _Default()public _Default() { Page.Load += new EventHandler(Page_Load); }{ Page.Load += new EventHandler(Page_Load); }

Page 95: 搭建 ASP.NET  开发环境 安装和配置 IIS 配置 web.Config  文件 补充内容 :     web 服务器, ASP.NET  对象

如何在如何在其它页其它页得到当前页的状态? 得到当前页的状态? 上面的方法会失效!因为在其它页,无法上面的方法会失效!因为在其它页,无法得到当前页的控件,也无法执行当前页的得到当前页的控件,也无法执行当前页的方法。方法。

但可以用但可以用 SessionSession 变量保存变量保存当前页当前页状态,状态, 然后在其它页得到它。然后在其它页得到它。

仍然用上面的例子。仍然用上面的例子。

Page 96: 搭建 ASP.NET  开发环境 安装和配置 IIS 配置 web.Config  文件 补充内容 :     web 服务器, ASP.NET  对象

Session[“st”]Session[“st”] 也可以用于其也可以用于其它页它页

public partial class _Default : System.Web.UI.Page public partial class _Default : System.Web.UI.Page {{ protected void SaveBtn_Click(object sender, protected void SaveBtn_Click(object sender,

EventArgs e)EventArgs e) {{ ////保存状态保存状态 Session["st"] = TextBox1.Text;Session["st"] = TextBox1.Text; } } protected void GetBtn_Click(object sender, EventArgs protected void GetBtn_Click(object sender, EventArgs

e)e) {{ ////获取状态获取状态 Label1.Text = Session["st"].ToString();Label1.Text = Session["st"].ToString(); }}}}

Page 97: 搭建 ASP.NET  开发环境 安装和配置 IIS 配置 web.Config  文件 补充内容 :     web 服务器, ASP.NET  对象

每个访问者都有自己的每个访问者都有自己的SessionSession

ApplicationApplication 是所以访问者共同拥有,是所以访问者共同拥有,而而 SessionSession 是每个访问者都有自己的是每个访问者都有自己的

SessionSession 。。

见见 ebook.aspx, download.aspxebook.aspx, download.aspx 等实际例等实际例子。子。

Page 98: 搭建 ASP.NET  开发环境 安装和配置 IIS 配置 web.Config  文件 补充内容 :     web 服务器, ASP.NET  对象

WebWeb 程序程序与与桌面程序桌面程序的不同 的不同 222 2 )控件的差别)控件的差别 桌面桌面的控件一般有的控件一般有 MouseMoveMouseMove事件,而事件,而 WebWeb 控件没有控件没有。。

有些有些WebWeb 控件有控件有 AutoPostBack, IsPoskPackAutoPostBack, IsPoskPack 属性属性 ,,桌面程序桌面程序控件没有控件没有。。AutoPostBackAutoPostBack为为 true, true, 会自动将控件动作发到服务器,会自动将控件动作发到服务器,如如 DropDownListDropDownList 的的 SlecteChangeSlecteChange事件,将选择项自动回事件,将选择项自动回

传。传。

TextBox TextBox 控件中按 控件中按 Enter Enter 键时,则启用自动回传,键时,则启用自动回传,把输入的字符串自动回传到服务器。 把输入的字符串自动回传到服务器。

Page 99: 搭建 ASP.NET  开发环境 安装和配置 IIS 配置 web.Config  文件 补充内容 :     web 服务器, ASP.NET  对象

WebWeb 程序程序与与桌面程序桌面程序的不同 的不同 332 2 )) HTMLHTML 的差别的差别 aspxaspx 页面页面一定有一定有 HTMLHTML ,,

桌面程序桌面程序可以没有可以没有。。