1 、熟知 Response 对象的有关属性和方法及 Cookies 集,熟练掌握其功能和用法...

69

description

1 、熟知 Response 对象的有关属性和方法及 Cookies 集,熟练掌握其功能和用法 2 、熟知 Request 对象的属性和集合 3 、熟知 Server 对象的属性和方法 4 、熟练掌握 Session 对象和 Application 对象的属性和方法; 5 、掌握在 global.asa 文件中使用 Session 和 Application 对象的属性、方法、事件等; 教学重点 1 、利用 Response 对象和 Cookies 集合来控制和管理由服务器发送到浏览器的数据; - PowerPoint PPT Presentation

Transcript of 1 、熟知 Response 对象的有关属性和方法及 Cookies 集,熟练掌握其功能和用法...

第 4 章 ASP 内置对象 【教学目标】

1 、熟知 Response 对象的有关属性和方法及 Cookies 集,熟练掌握其功能和用法

2 、熟知 Request 对象的属性和集合3 、熟知 Server 对象的属性和方法4 、熟练掌握 Session 对象和 Application 对象的属性和方法; 5 、掌握在 global.asa 文件中使用 Session 和 Application 对象的属

性、方法、事件等;

教学重点1 、利用 Response 对象和 Cookies 集合来控制和管理由服务器发

送到浏览器的数据; 2 、利用 Request 对象获得表单所提交的数据、 Cookie 的值以及

服务器环境变量的值;教学难点在 global.asa 文件中使用 Application 对象和 Session 对象。

第 4 章 ASP 内置对象 【课程引入与回顾】

客户端经常要向服务器提交信息,比如我们在网上注册一个电子邮箱,客户端在 Web 页面上填写好相关信息后,单击“提交”按钮,此时系统会自动完成将填写的数据提交到服务器端,并返回一定的信息。那如何实现数据的收集和交互信息的显示呢?

第 4 章 ASP 内置对象 【 4.1 获取客户端数据的 Request 对象】

一、 Request 对象

客户端经常要向服务器提交信息,比如注册电子邮箱,客户端在 Web 页面上填写好相关信息后,单击“提交”按钮,系统会自动完成将填写的数据提交到服务器端。 利用 Request 对象可以轻松实现数据收集功能。 Requset 对象用于使服务器获取从客户端浏览器提交或者上传的信息。包括以下获取内容:

第 4 章 ASP 内置对象 【 4.1 获取客户端数据的 Request 对象】

Request 对象只有一种属性 --TotalBytes 属性,该属性用来取得从客户端接收的所有数据的字节大小。其引用格式为:Variable=Request.TotalBytes 该属性很少在 ASP 页面中应用,因为更关心的是一些特定的值,而不是整个请求字符串。

1 、 Request 对象的属性

只提供一种方法 --BinaryRead 方法。该方法用来取得 HTML 表单的源内容,利用它可以以二进制码的方式读取客户端的 POST 数据。它的返回值是一个数组,该方法需要一个参数,即每次读取的字节的大小。其引用格式为:Variable 数组 = Request.BinaryRead(count) 由于与 Form 集合抵触,所以程序中若参考了 Form 集合,就不能再使用 BinaryRead 方法。同样,若调用了 BinaryRead 方法,也不能再使用 Form 集合。

2 、 Request 对象的方法

第 4 章 ASP 内置对象 【 4.1 获取客户端数据的 Request 对象】

Form 集合:使用 Form 集合可以得到表单以 POST 方式提交的数据。 POST 方式将表单中的数据打包成一块后以文件的形式提交给服务器,因此所提交的数据是不限定长度的。 Querystring 集合:使用 Querystring 集合可以得到以 GET 方式提交的数据。 GET 方式将表单中的数据直接附加到 URL地址栏的后面提交给服务器,因此限定了数据的长度。 ServerVariables 集合:在浏览器中浏览 Web 页面时使用的传输协议是 HTTP ,在 HTTP 标题文件中会记录一些客户端的信息,有时服务器还需要根据不同的客户端信息做出不同的反映,这时就要用 ServerVariables 集合来获取所需信息。 ServerVariables 集合用于得到系统的环境变量。 Cookies 集合: Cookie 是一种标记,由 Web 服务器嵌入用户浏览器中来标识用户。 Cookies 方法在网络上使用的非常广泛,使用它,服务器可以在每次访问的客户机上留下一个“印记”,当下次该客户机再次访问服务器时,服务器就可以通过读取客户机上的 Cookie ,达到“记忆”的效果。从另一个角度来讲,使用 Cookies 方法也减轻了服务器的许多负担,本来需要在服务器上数据库中或文件中保留的数据,此时只要存储在客户机上。

3、 Request 对象的集合

第 4 章 ASP 内置对象 【 4.2 向客户端输出数据的 Request 对象】

用来控制向客户端浏览器发送数据。用户可以使用该对象将服务器端的数据用超文本的格式发送到用户端浏览器,包括直接发送数据给浏览器、重定向浏览器到另一个 URL 或设置 Cookies 的值等。 Request 对象与Response 对象可以说是一对孪生兄弟,一个负责收集,一个负责输出。Response 对象的语法结构为:Response [. 集合 | 属性 | 方法 ]

1 、 Response 对象的属性

二、 Response 对象

第 4 章 ASP 内置对象 【 4.2 向客户端输出数据的 Request 对象】

Response 对象的许多功能是通过其方法来实现的。

2 、 Response 对象的方法

第 4 章 ASP 内置对象 【 4.2 向客户端输出数据的 Request 对象】

3、 Response 对象的集合

Response 只有一个集合: Cookies 。前面提及过Cookie 及 Request.Cookies 集合,它们用来提取存储在客户计算机Cookie 中的值。而 Response 对象的 Cookies 集合用来设置 Cookie 的值,若指定的 Cookie 不存在,则在客户机上创建;若存在,则设置新的值并将原值删除。其引用的一般格式为:Response.Cookies("变量名 ") = 写入的信息

第 4 章 ASP 内置对象 【 4.2 向客户端输出数据的 Request 对象】

4、验证用户口令字

以下实例借助 Response 的 Buffer 属性、 End 及 Write 方法,完成当用户输入的口令字不等于“ 123456” 时,则服务器停止处理脚本,并在客户端浏览器中输出“密码错误!”字样。 <form action="4-11.asp" method="post"> 请输入口令字 :<input type="text" name="password"> <input type="submit" value="提交 "></form><% dim pwd response.buffer=true ' 设置服务器缓冲为 true pwd=request.form("password") if pwd<>"123456" then response.write(" 密码错误 ") response.end '使 Web 服务器停止处理脚本 end if ' 否则密码正确 ,执行以下语句 response.write(" 你输入的口令为 :" & pwd)%>

第 4 章 ASP 内置对象 【 4.3 应用程序会话管理】

三、应用程序会话管理 1 、供全体应用程序使用的 Application 对象 Application 对象是一个应用程序级的对象。作用: ( 1) 可以使用 Application 对象定义变量,该变量类似于一般的程序设计语言中所谓的“全局变量”。用此变量保存的信息,在同一 ASP程序中的所有用户可共享此信息(如聊天室中,某人说一句话,全体人可看见)。 ( 2) 所保存的信息,在服务器运行期间可永久性保存(如网页计数器,自动记录页面浏览的次数)。 ( 3) 控制访问应用层数据的方法和可用于在应用程序启动和停止时触发过程的事件(如可设置在同一时刻仅限一人访问)。 Application 对象只有一个 Value 属性,其引用的一般格式为:Application(“ 变量名 ")= 值

第 4 章 ASP 内置对象 【 4.3 应用程序会话管理】

Application 对象的两个方法:Application.Lock与 Application.UnLock。用来处理多个用户对存储在 Application 对象中的数据进行写入的问题。在常见的电子商务网站中,容易出现这样一种冲突情况:两个或者多个用户同时修改同一个目标,如数据库中的某条记录或某个 Application变量。使用 Application.Lock可以确保在某一时段所有连接到服务器的用户之中只有一个能获得存取或修改某公共变量(如一个 Application变量和对象)的权限,即对该公共变量进行锁定操作。其他任何用户想要获得这样的权限就必须等当前权限用户结束其锁定或者当前 ASP 程序终止执行。解除锁定的方法是 Application.Unlock。在完成修改公共变量的目的以后,应当及时释放当前拥有的存取和修改的权利,以便别的用户进行请求。

引用格式为:Application.LockApplication.Unlock

第 4 章 ASP 内置对象 【 4.3 应用程序会话管理】

两个事件:Application_Onstart 和 Application_Onend 。Application_Onstart 事件在创建与服务器的首次会话之前发生,当服务器启动并且允许用户请求时就触发该事件。Application_Onend 事件与 Application_Onstart 事件相反,它在整个ASP 程序退出之后发生,一般用来回收一些 Application 变量以节省服务器资源。一般格式为:<script language=VBScript RUNAT=server>Sub Application_Onstart()…..End SubSub Application_Onend()……End Sub</script> 处理 Application_Onstart 事件与 Application_Onend 的代码不是放在普通的 ASP 文件中,而是放在服务器根目录下的一个叫 Global.asa 文件中。

第 4 章 ASP 内置对象 【 4.3 应用程序会话管理】

内容回顾

Request对象: 从客户端获取用户信息

Response对象:将数据送出到客户端

例如:注册

第 4 章 ASP 内置对象 【 4.3 应用程序会话管理】

客户机

服务器

第 4 章 ASP 内置对象 【 4.3 应用程序会话管理】

反馈给用户信息

传送所填写的个人信息执行处理逻辑:( 接受客户端传来的各参数:

张三

11111

音乐 计算机)

request

从客户端获取数据

response

将数据送到客户端

客户机

服务器

第 4 章 ASP 内置对象 【 4.3 应用程序会话管理】

Request对象: Form 集合 QueryString 集合ServerVariables 集合

Response对象: Write方法Redirect方法End方法

第 4 章 ASP 内置对象 【 4.3 应用程序会话管理】

问题的引入

注册页面 登录页面 主页

问题:用户从一个页面转到另一个页面时,在下一页面中如何记载用户的信息 ?

第 4 章 ASP 内置对象 【 4.3 应用程序会话管理】

根据以往的经验:

利用超链接。将信息附在超链接后面以生成查询字符串,通过检索 request 对象的 querystring 集合,实现信息的传递(从一页传到另一页)

向客户端浏览器写入 Cookie 。利用 response 对象的 cookies 来保存信息到本地硬盘,再用 request 对象的 cookies 来读取信息。

第 4 章 ASP 内置对象 【 4.3 应用程序会话管理】

目标: 对 Session 对象的理解 Session 对象的属性、方法

两个属性: SessionID :存储用户的 SessionID 信息。

Timeout : Session 的有效期。 一个方法:

Abandon :清除 Session 对象。 Session 对象的应用

2 、特定用户会话使用的 Session 对象

第 4 章 ASP 内置对象 【 4.3 应用程序会话管理】

用来记载特定用户的信息,实现多个页面信息共享。

Session 信息

页面 1 页面 2 页面 3

示意图:

对 Session 的理解

第 4 章 ASP 内置对象 【 4.3 应用程序会话管理】

启动 Session产生 SessionID

送回 SessionID将 SessionID存放到 Cookies中

客户机

服务器

磁盘

Session 工作原理

第 4 章 ASP 内置对象 【 4.3 应用程序会话管理】

再送出 HTTP 请求

到客户端检查 SessionID

客户机

服务器

磁盘

Session 工作原理

第 4 章 ASP 内置对象 【 4.3 应用程序会话管理】

发送 SessionID 信息

返回 SessionID 对应的信息

客户机

服务器

磁盘

返回返回

Session 工作原理

第 4 章 ASP 内置对象 【 4.3 应用程序会话管理】

当用户开始访问某个网页时,服务器会自动产生一个Session ID ,并把这个 Session ID 送给客户端浏览器,浏览器把这个 Session ID存放在 Cookies 内。当用户再次向服务器送出 HTTP 请求时, ASP 会去检查申请表头的 Session ID ,并返回该 Session ID 对应的Session 信息。

第 4 章 ASP 内置对象 【 4.3 应用程序会话管理】

实例:输出 SessionID 的值到浏览器 ( 使用 SessionID 属性)

1.asp:  <%Response.Write Session.SessionID %><br><a href=“2.asp”>下一页 </a>

2.asp:    <% Response.Write Session.SessionID %><br>

第 4 章 ASP 内置对象 【 4.3 应用程序会话管理】

思考:1. 运行 1.asp页面,再点击链接进入 2.asp页面,浏览器分别输出什么? 2. 如果在 1.asp页面刷新一下,浏览器输出什么?为什么?3. 关闭所有的浏览器窗口后,再运行 2.asp页面,浏览器输出什么?为什么?

解答:1. 运行 1.asp时,浏览器输出: 1031426129 点击“下一页”链接,运行 2.asp时,浏览器仍输出: 1031426129

2. 浏览器仍输出: 1031426129,可以理解为一个窗口一个用户。 3. 1031426130 因为启动了一个新的会话。

第 4 章 ASP 内置对象 【 4.3 应用程序会话管理】

此例说明:

1. Session 对象的建立时间。当一个用户打开一个应用程序的某页时,就会建立一个 Session 对象,可以保存该用户的信息。

2. 会话从用户启动 IE访问某个页面开始,意味着一个会话的开始,直到关闭 IE窗口为止,意味着一个会话的结束。(在此过程中,无论用户是在本窗口内打开一个新的页面,还是在子窗口内打开一个新的页面,都还是同一个 Session 对象。)但如果用户又从桌面上打开了另外一个浏览器窗口,也访问这个应用程序中的某个页面,这时就建立了两个独立的 Session 对象,就像两个用户一样。

第 4 章 ASP 内置对象 【 4.3 应用程序会话管理】

Session 对象的两个属性: ( 1) SessionID 属性 SessionID 属性用于返回用户的会话标识,即前面提到的由服务器生成的在会话期间内惟一标识用户的一个字符串。每次用户产生一个新的请求,请求服务器的 ASP 页面时,服务器都会验证这个用户的 SessionID 。 SessionID 的值是一行 9位的数字。 ( 2) Timeout 属性– session 对象的有效期单位:分钟 系统默认值: 20分钟如果用户在有效期内一直没有和服务器交互,那么超过规定的时间,该 session 对象就失效,保存在 Session 对象中的信息也就失效了。

第 4 章 ASP 内置对象 【 4.3 应用程序会话管理】

Session 对象只有一种方法—— Abandon 。此方法用于清除存储在 Session 中的所有对象和变量,释放系统资源。如果不使用 Abandon 方法,系统将一直等到 Session超时才将 Session 中的对象和变量清除。

如何利用程序清除 Session 对象?Session.Abandon ()

Session 对象永不过期的做法:强制用户不停地和服务器交互。<meta http-equiv=“refresh” content=“900”>

如何将生存期修改为 60 分钟?     Session.Timeout = 60

第 4 章 ASP 内置对象 【 4.3 应用程序会话管理】

Session 对象的两个事件: Session__OnStart 和 Session_OnEnd 。同样,这两个事件的脚本文档应放在 global.asa 中。 ( 1) Session_OnStart 事件 Session_OnStart 事件是在服务器创建一个新会话时发生。服务器在执行请求的页之前先处理该脚本。因此,可以在其中定义所有在页面中需要使用的 Session 变量,也可以在其中定义任何内置对象的实例,如Application 、 Server 、 Request 和 Response 等。 ( 2) Session_OnEnd 事件 当程序中调用了 Session 对象的 Abandon 方法时或者 Session 对象的Timeout 属性超时时, Session_OnEnd 事件被触发。一般在 Session_OnEnd 事件中清理一些系统对象或变量的值,释放系统资源。在该事件中,只能使用 3种内置对象: Application , Server 和 Session 。

第 4 章 ASP 内置对象 【 4.3 应用程序会话管理】

利用 Session存储信息的语法格式语法: Session(“Session名字” )=变量或字符串信息例如: <% Session(“user_name”)= “张三”

Session(“age”)= 23Session(“school”)= hisschool ‘hisschool 为

变量 %>

解释:创建的同时赋值,以后再赋值就是更改 Session 变量的值了。

Session 对象的应用

第 4 章 ASP 内置对象 【 4.3 应用程序会话管理】

应用实例建立两个页面,验证 Session 变量的值   页面 1 : ( 1.asp)  

<%Session(“Greeting”)=“欢迎”      ‘定义 Session 变量的值   Response.Write(Session(“Greeting”)) ’输出 Session变量的值 %>   

  <br>  <a href=“2.asp">下一页 </a>  

页面 2 :( 2.asp)        <%

Response.Write(Session(“Greeting”))  ‘输出 Session 变量的值 %>

第 4 章 ASP 内置对象 【 4.3 应用程序会话管理】思考:1. 直接运行 2.asp页面,浏览器输出什么?2. 先运行 1.asp页面,再点击链接进入 2.asp,浏览器分别输出什么? 3. 修改 1.asp的“欢迎!”为“早上好”,再运行 2.asp,浏览器输出什么?4. 在第 4步基础上,先运行 1.asp,再点击链接进入 2.asp,浏览器分别 输出什么?

解答:1. 浏览器空白 . 因为 Session("Greeting")没有赋值,其值为空。

2. 浏览器分别输出:欢迎!

4. 浏览器分别输出:早上好

3. 浏览器输出:欢迎! 原因:虽然更改了 4-17.asp页面的赋值语句, 但该页面没有被运行, Session (“Greeting”) 的值没有改变。

第 4 章 ASP 内置对象 【 4.3 应用程序会话管理】

Session 对象与 Application 对象的区别:相同点是都可以用来存储一些用户信息。 不同点如下表:

对象 作用 存储期限 典型应用

Application 记载所有用户共享的信息

用户离开网站后, Application 对象存储的信息不会消失,直到网站关闭或者这个 Application 对象被卸载

聊天室

Session 记载不同用户各自的信息 不同用户的信息用不同的 Session 对象记载

用户离开网站后, Session 对象存储的信息就不存在

购物车

第 4 章 ASP 内置对象 【 4.3 应用程序会话管理】

在电子商务网站中常利用 Session 对象实现“购物车”。用户可以在不同页面选择不同的商品,所有的商品货号、价格等信息都可以保留在 Session 对象中,直到用户去收银台交款或者取消购物, Session 对象中的数据才被清除或者设置为超时状态。而另一个用户进来时,系统又会重新分配一台“购物车”,重新保存于一个 Session 对象中。

第 4 章 ASP 内置对象 【 4.3 应用程序会话管理】

最初的问题:用户在登录页面输入自己的用户名,在其他页面还需要使用该用户名,如何记住该用户名呢?

登录页面 A.asp

主页 B.asp

第 4 章 ASP 内置对象 【 4.3 应用程序会话管理】

解决方案:

1. 在表单处理代码中:获取用户的输入(用户名),然后保存到 Session 中,以便在其它页面中实现信息共享。

2. 在第二个页面中读取 Session 信息,并显示欢迎信息或其它主页内容。

第 4 章 ASP 内置对象 【 4.3 应用程序会话管理】

登录页面A.asp

表单处理代码

第 4 章 ASP 内置对象 【 4.3 应用程序会话管理】主页 B.asp

第 4 章 ASP 内置对象 【 4.3 应用程序会话管理】

思考:1. 本例中可以输入任意的用户名和密码,目的是为了在下一页面显示而已。 若想要限制用户输入正确的用户名和密码,怎么办?2. 本例中若用户不通过登录程序,也可以直接运行主页,从而存在一定的安全

隐患。若强制用户必须经过登录页面才能运行其他页面,如何更改代码?

解答:1. 若用户必须输入正确的用户名和密码才能进入下一页面,此时就要 用到数据库知识,这会在第七章中学到。2. 可在主页的代码前面增加如下代码:<%if Session(“user_name”)=“” then response.Redirect(“a.asp")end if%>

第 4 章 ASP 内置对象 【 4.3 应用程序会话管理】

第二个页面B.asp

如果用户没有登录就直接访问第二页,将用户重定向回第一页

第 4 章 ASP 内置对象 【 4.3 应用程序会话管理】

1.复杂的注册 /登录模块 ( LOG 文件夹)2. 网上购物 ( SHOP 文件夹)

更多应用

第 4 章 ASP 内置对象 【 4.3 应用程序会话管理】

1. Session 对象的工作原理2. Session 对象与 Application 对象的区别

难点

重点利用 Session存储信息的应用

第 4 章 ASP 内置对象 【 4.3 应用程序会话管理】

1. 上机调试本节课所有示例,并认真体会 SessionID 的工作原理。

2. 请编写一个含登录页面的聊天室,并能在聊天室中显示出是谁的发言。比如:张三说:…… .

练习

思考如果客户端浏览器不支持 Cookies ,那么能支持 Session吗?

第 4 章 ASP 内置对象 【 4.3 应用程序会话管理】

3、如何使用 Global.asa 文件 Global.asa 文件是一个可选文件,开发者可以在该文件中指定事件脚本,并声明具有会话和应用程序作用域的对象。该文件的内容不是显示给用户的,而是用来存储事件信息和由应用程序全局使用的对象。 文件名必须是 Global.asa 可放在应用程序的根目录下,也可以放到任何子目录下。一旦创建此文件,则会对其目录下的所有文件产生作用。 Global.asa 文件只能包含如下内容: <Object>声明、应用程序事件和会话事件。 当用户请求启动应用程序并创建新的会话时,首先触发的是 Application_Onstar 事件,然后才是 Session_Onstart 事件。当用户当前所有请求处理完之后,服务器首先对每个会话调用 Session_Onend 事件,删除所有的活动会话,然后调用 Application_Onend 事件关闭应用程序。

第 4 章 ASP 内置对象 【 4.4 服务器信息的 Server 对象】

四、服务器信息的 Server 对象 Server 对象提供了访问和使用服务器的方法与属性接口。通过 Server 对象属性和方法的使用,可以达到对服务器对象的使用和访问服务器的信息。服务器提供一系列的对象模型,如数据库连接组件Adodb ,其访问模型有连接数据库Connection ,记录集 Recordset等。通过 Server 对象创建一个这样的对象模型的实例,然后才能使用。有了 Server 对象,就可以在服务器上启动 ActiveX组件。 Server 对象的语法结构: Server. 属性 |方法(变量或字符串 |= 整数)

第 4 章 ASP 内置对象 【 4.4 服务器信息的 Server 对象】

Server 对象只有一个属性—— ScriptTimeout ,该属性用于设置 Web 服务器响应一个网页请求所需要的时间。如果脚本超过该时间限度还没有执行,它将被中止,并提交超时错误。该属性单位是“秒”,默认值为 90秒。 Server 对象的方法及方法所表示的意义如表所示:

第 4 章 ASP 内置对象 【案例分析】

案例:聊天室

第 4 章 ASP 内置对象 【案例分析】

背景知识:

网上聊天是 Internet 上的热门应用一 、案例背景

Request 对象: 获取用户信息Response 对象:将信息送到浏览器Session 对象 : 存储一个普通用户滞留期间的用户信息 Application 对象 : 存储一个应用程序中所有用户共享的信息

第 4 章 ASP 内置对象 【案例分析】二 、案例分析

1.操作流程演示

登录页面聊天页面

第 4 章 ASP 内置对象 【案例分析】

2. 需求分析

对于普通用户: 可以发言,并选择字体的颜色和表情; 可以显示在线人数。

对于管理员:除以上功能,还可以凭密码清空聊天内容。

第 4 章 ASP 内置对象 【案例分析】

3. 功能设计进入聊天室

退出聊天室

管理员模块

聊天室

用户模块发言、颜色和表情

显示在线人数

同用户模块

清空聊天室内容

第 4 章 ASP 内置对象 【案例分析】

4.详细设计 文件组成 :本案例有 8个文件组成:

• login.asp: 登录页面 • do_login.asp: 登录处理页面 • main.asp: 框架文件 • sponse.asp: 信息输入页面 • display.asp: 信息显示页面• Global.asa: 统计在线人数• Exit.asp: 离开聊天室• Admin.asp: 管理页面

第 4 章 ASP 内置对象 【案例分析】

流程图:登录页面 login.asp

单击”进入“按钮

发送信息页面: sponse.asp

显示信息页面: display.asp

主页面 main.asp

单击”发言“按钮

登录处理页面 do_login.asp

获取用户信息 , 并存入 Session 中,转入主页面

单击” 管理聊天室“按

钮管理页面: Admin.asp

退出页面:exit.asp

单击”退出聊天室“按钮

用户

Global.asa

进入 or退出聊天室(直接关闭浏览器)

第 4 章 ASP 内置对象 【案例分析】三 、关键技术

2.具体的保存方法数据库;文本文件application 对象;

变量 2用户名变量 1

发言变量 4

表情变量

3application("show")= 变量 1&“ 在” & 变量 2& 变量 3&“说:”& 变量 4

变量 4细化为:“ <font color=‘” & 变量 5 & “’>” & 变量 4& "</font>"

白云在 9:34:26高兴地说:同学们好 !

1. 用什么保存聊天内容 关键技术 1:聊天内容的保存

第 4 章 ASP 内置对象 【案例分析】变量 1 、 2 、 3 、 4 、 5分别来自于

session(“xm2”)系统时间函数 timerequest("myemote") request (“message”)request(“mycolor”)

application("show")= session(“xm2”) &“ 在” &time

& request("myemote") &“说:” &“<font color=‘” & request(“mycolor”)

& “’>” & request.Form(“message”)& "</font>"

第 4 章 ASP 内置对象 【案例分析】

3. 如何添加新的发言白云在 10:09:12慢条斯理地说:我要发言

application("show")=白云在 10:09:12慢条斯理地说:我要发言 & "<br>" & application("show")

messageStr=session(“xm2”) &“ 在” &time& request("myemote") &“ 说:” &“<font color=‘” &

request(“mycolor”)& “’>” & request.Form(“message”)& "</font>"

application("show")= messageStr & "<br>" & application("show")

第 4 章 ASP 内置对象 【案例分析】

进入聊天室 ----- 一个会话的开始;退出聊天室 ----- 一个会话的结束。会分别触发 session_onstart 事件和 session_onend 事件该事件包含在 Global.asa 文件中。

用户进入聊天室 :

Global.asa 中的 session_onstart 事件 : Application("online")=Application("online")+1

关键技术 2: 统计在线人数

application 对象;1. 用什么保存在线人数

2.具体的实现方法

第 4 章 ASP 内置对象 【案例分析】

用户退出聊天室 :

注:用户关闭浏览器时不是立即触发该事件,而是经过一 定延迟(由 session.timeout规定)

提供“退出聊天室”的超链接;exit.asp:Application("online")=Application("online")-1 ' 在线人数减 1

Global.asa 文件: session_onend 事件application("online")=application("online")-1

第 4 章 ASP 内置对象 【案例分析】

关键技术 3: 如何清空聊天内容 admin.asp

<form name="admi" method="post" action="">请输入管理员密码以清空聊天内容 :<input type="password" name="pw" size="6">&nbsp&nbsp&nbsp<input type="submit" value="确定 "></form>

第 4 章 ASP 内置对象 【案例分析】

<%if request("pw")< >"" then

if request("pw")="123" then Application.Lock Application(("show"))=""

Application.UnlockResponse.Write "聊天内容已清空! <a href='login.a

sp'> 返回登录页面 </a> "else Response.Write "密码错!请重新输入 "

end if end if%>

第 4 章 ASP 内置对象 【案例分析】

清空聊天内容的另一种方法:

第 4 章 ASP 内置对象 【案例分析】

第 4 章 ASP 内置对象 【案例分析】四、案例反思

本案例中可以输入任意的用户名和密码,目的只是为了在下一页面显示。若想要限制用户输入正确的用户名和密码,怎么办?

本案例中用户不通过 login.asp登录页面,也可以直接运行main.asp主页。若强制用户必须经过登录页面才能运行其他页面,如何更改代码?

第 4 章 ASP 内置对象 【案例分析】

Do_login.asp:

<%

if request.form("xm1")="" or request.form("mm")="" then

response.write("对不起,你的资料不全!请返回重填 " & "<a href='login.asp'> 返回上一页面 ")

else

session("xm2")=trim(request.form("xm1"))

response.redirect "main.asp"

end if

%>

第 4 章 ASP 内置对象 【案例分析】

2.①可在 main.asp主页的代码前面增加如下代码: <%

if Session(“xm2")="" then response.Redirect(“login.asp")

end if%>

②切换到 sponse.asp和 display.asp代码窗口,同样在最前面增加如上代码。

第 4 章 ASP 内置对象 【案例分析】

1. 聊天室的制作流程2. 聊天室中关键技术的实现

本案例教学目的、要求1.    了解聊天室的功能2.    熟悉本案例的文件组成和制作流程3. 掌握 ASP四个内置对象的联合应用

教学重点及难点

第 4 章 ASP 内置对象 【练习】

1. 了解本案例的操作流程和功能。2. 进行详细设计,写出聊天室的全部代码并调试通过。3. 按 “案例反思”第 2步中的要求,更改并运行程序,看结果。