ASP.NET实用教程 清华大学出版社 第6章ASP.NET内置对象 教学目标 教学重点 教学过程 2019年4月24日
教学目标 通过本章的学习,应掌握这些常用对象的用法、功能。 2019年4月24日
教学重点 掌握Request、Response、Server、Application和Session对象。 2019年4月24日
教学过程 在本章重点讲解了Request、Response、Server、Application和Session对象, 课后应结合上机操作加强练习。 2019年4月24日
6.1 Request对象 用Request对象获取URL传递变量 用Request对象获取表单传递值 用Request对象获取服务器变量值 2019年4月24日
用Request对象获取URL传递变量 使用Request 对象的QueryString属性可以获取来自于请求URL地址中“?”后面的数据,这些数据称为URL附加信息。 例如:http://www.asp.com/show.asp?id=10 取得参数“id”值的语句是: Request.QueryString["id"] QueryString主要用于获取HTTP协议中GET请求方式发送的数据。如果一个请求事件中被请求的程序URL地址出现了“?”后的数据,则表示此次请求方式为GET。GET方式是HTTP中的默认请求方式。 GET方法会将传递的参数与参数值添加到URL地址之中,而且包含这些信息的完整URL地址会显示在浏览器地址栏中 。 2019年4月24日
用Request对象获取表单传递值 使用Request对象的Form属性获取表单传递的信息,一般格式为: 通过POST方式发送的数据不会显示在URL中,因此POST发送数据会比GET发送安全。 2019年4月24日
用Request对象获取服务器变量值 当用户向服务器请求信息或者服务器对用户的请求做出应答时,他们的信息都包含在HTTP Header(HTTP头)中。HTTP头提供了有关请求和响应的附加信息,同时还包括浏览器生成请求和服务器做出响应的过程信息。通过Request对象的ServerVariables属性,可以获得当前环境的这些信息。 2019年4月24日
6.2 Response对象 利用Response对象发送信息 利用Response对象重定向浏览器 2019年4月24日
利用Response对象发送信息 Response对象最常用的功能就是向浏览器发送信息,而实现这一功能最常用的是它的Write方法,其使用形式为: Response.Write(value); value代表发送的信息,可以是任何类型的变量或者表达式 2019年4月24日
利用Response对象重定向浏览器 重新定向浏览器就是让浏览器重新访问一个新地址(URL)。可以使用Response对象的Redirect方法强制用户进入某个必须先访问的网页,该方法的使用语法如下: Response.Redirect(newUrl)。 参数newUrl表示重定向后的目标地址。在每个功能页的开始部分增加一个Response.Redirect语句,就可以强制用户首先访问指定的页面 2019年4月24日
6.3 Server对象 利用Server对象控制页面显示时间 利用Server对象创建晚绑定对象 2019年4月24日
利用Server对象控制页面显示时间 为了防止页面出现死循环或者页面脚本运行时间大于系统设置的运行时间,需要对页面脚本的运行时间进行控制。这时可以使用Server对象的ScriptTimeout属性来实现这一目的。 2019年4月24日
利用Server对象创建晚绑定对象 晚绑定对象是相对于早绑定对象而言。所谓晚绑定对象是指用Server对象的CreateObject方法创建对象。下面的语句就创建了一个晚绑定对象: Obj = Server.CreateObject(ObjectType) 而早绑定对象是在定义变量时,由new语句创建的,如以下语句: Obj = new ObjType(); 使用早绑定对象允许编译器识别错误,能够提供更好的性能,所以应尽量使用早绑定对象而避免使用晚绑定对象。 2019年4月24日
6.4 Application对象 利用Application对象存取变量 创建Application对象 同步和互斥 Application的事件和Global.asax 2019年4月24日
利用Application对象存取变量 Application对象可以存取变量,并且这些变量可以被多个用户共享。 2019年4月24日
创建Application对象 创建Application对象就是将Web服务器上的一个虚拟目录或者虚拟目录的某个子目录设置为一个Application对象。 选择“开始”|“设置”|“控制面板”命令将打开“控制面板”窗口,在该窗口中双击“管理工具”图标打开 “管理工具”窗口,在“管理工具” 窗口中选择 “Internet信息服务IIS”打开“IIS”窗口,展开“默认Web站点”,选择已经创建的虚拟目录名。 2019年4月24日
同步和互斥 在页面共享变量时也引发一个问题,那就是各个页面都可以修改共享变量的值。为了避免这种冲突出现,Application对象提供了Lock方法解决这样的问题。其语句如下: Application.Lock 在这个语句之后,Application对象变量的值只能由一个用户改动,这样就避免了多个用户同时改变一个变量值的情况。当用户改动结束后,应该允许其他用户改动该变量,这就要求解除对变量值的锁定。语句如下: Application.UnLock 2019年4月24日
Application的事件和Global.asax Application拥有自己的事件和生命周期,当Application开始启动时,会触发Application_Start事件;当Application终止时,会触发Application_End事件。这两个事件代码都存放在Global.asax文件中。Global.asax文件中主要定义了8个主要事件:Application_Start、Session_Start、Application_BeginRequest、Application_EndRequest、Application_AuthenticateRequest、Application_Error、Session_End和Application_End。 2019年4月24日
6.5 Session对象 利用Session对象存取变量 Session的唯一性和Session的终止 Session事件 2019年4月24日
利用Session对象存取变量 与Application对象一样,Session对象也可以存取变量,但它和Application对象在存储信息所使用的对象是完全不同的。Application对象存储的是共享信息,而Session对象存储的信息是局部的,它只是针对某个特定的用户。 2019年4月24日
Session的唯一性和Session的终止 当不同的用户登陆同一个页面,服务器为每一个用户分配一个Session。这些Session时各不相同的,用来识别不同的用户。也就是说,当一个Session创建后,它应该具有唯一标志。Session对象的SessionID属性就是用来区别Session的唯一标志,每个Session都具有一个唯一的SessionID。 可以通过“Internet服务管理器”来更改Session生存时间默认值。也可以在脚本中修改这个值,语法如下: Session.Timeout = 时间; 2019年4月24日
Session事件 与Application对象相同,Session对象也拥有自己的事件。正如在介绍关于Global.asax文件内容时所见到的,Session对象拥有Start和End事件,他们都存在于文件Global.asax中。当一个Session对象被创建时,触发Session_Start事件;当一个Session对象被终止时,触发Session_End事件。利用这两个事件可以处理一些有用的事情,如用户信息初始化等等。 2019年4月24日