13.1 课前导读
13.2 课堂教学
13.3 上机练习
13.4 课后作业第 13课 聊 天 室第 13课 聊 天 室将用户一次又一次吸引到网站上的最好的方法是创建一个某种意义上的社区,该社区是为用户提供一个相互联系和讨论的地方,聊天室网页正是为实现用户在网上进行交流而设计的 。
13.1 课前导读本课将学习怎样利用 Application对象及 ASP中的循环语句创建一个 Active Server Pages工程:聊天室网页 。
在聊天室网页中,综合运用了 ASP的多个内置对象,尤其是 Session对象和 Application对象,这两个对象的使用是聊天室的核心 。 相比之下,Response对象和 Request对象在程序里只是扮演配角,用以完成一些基本的功能 。
聊天室网页包括 4个网页文件,它们分别是:
① Login.htm:登录页面,要求进入聊天室的用户输入代表自己的名字 。
② ChatPage.asp:聊天页面,读取用户名字,
并初始化一个问候字符串,然后进入框架页面 。
③ Message.asp:上方框架的来源网页,用以输入聊天内容,包含一个单文本输入框和一个提交按钮 。
④ Display.asp:下方框架的来源网页,它依次显示各个用户输入的信息,每隔五秒钟更新一次 。
13.2 课堂教学
13.2.1 创建聊天室网页
13.2.2 改进的聊天室
13.2.1 创建聊天室网页
1,创建登录页面
2,创建聊天页面
3,创建发送信息页面
4,创建显示页面下面介绍 聊天室网页 的创建过程 。
1,创建登录页面登录页面是进入聊天室的第一个页面,它提供一个表单接受用户输入的名字 。 在记事本中输入 代码 。
将文件以 Login.htm为名存盘 。
说明:按,登录,按钮后,将打开聊天页面文件
ChatPage.asp。
2,创建聊天页面聊天页面有两个任务:
① 接受并处理登录页面所提供的用户名,将用户名存放在 Session("UserName")变量中;
② 声明构成聊天室的框架网页,上方框架的高度为 100像素点,来源网页为 Message.asp,下方框架的来源网页为 Display.asp。 在记事本中输入 代码,并将文件以 ChatPage.asp为名存盘 。
说明:
① <%...%>中的代码为 ASP代码,用于处理登录页面提交的数据 。
② 登录页面提交的名字信息 Request("UserName")
被存放于 Session对象的 Session("UserName")变量中,
以便在不同的页面中共享 。
③ Lock方法用来暂时阻止其他用户改变应用程序变量,变量被锁住后,直到解锁,其他用户无法访问或改变它们 。
④ 变量 Application("Talk"& i)共有 6个,用于存 放 用 户 提 交 的 聊 天 内 容 。 用 户 的 名 字 信 息
Request("UserName") 加上一段问候信息存放在
Application("Talk0")中,将显示在显示页面的第一行,其余变量中的聊天信息将依次推后 。
⑤ 函数 time返回用户进入聊天室的时间 。
3,创建发送信息页面发送信息页面 ( Message.asp) 是一个包括文本输入框和提交键的 HTML表单 。 该页面可以输入并发送新的聊天信息 。 在记事本中输入 代码 。
将文件以 Message.asp为名存盘 。
说明:
① 首先判断表单元素 message( 文本输入框 ) 的内容是否为空,如不为空,则将提交的谈话内容
Request.Form("message") 存放于 Application 变量
Talk0中 。
② 变量 Application("Talk"& i)共有 6个,用于存放用户提交的聊天内容 。 由表单提交的最新信息总是存放在 Application("Talk0")中,显示在显示页面的第一行 。 其余变量中的聊天信息依次推后 。
③ 代码:
<FORM method=post action="Message.asp">
表示表单,提交 (post)” 后 激 活 的 网 页 是
"Message.asp",这样单击,发送,键时此页面重新被载入,从而清空表单元素 message中的输入内容 。
④ 在浏览器中执行代码,显示 如图 。
4,创建显示页面显示页面是用户信息的实际显示处 。 在记事本中输入 代码,并将文件以 Display.asp为名存盘 。
说明:
① 变量 Application("Talk"& i)共有 6个,用于存放用户提交的聊天内容 。 用循环语句 For? Next将变量依次显示在页面中 。
② 代码:
<META http-equiv=refresh content="5;<%=MySelf%>">
表示网页每隔 5秒钟自动更新一次 。
13.2.2 改进的聊天室
1,在线名单
2,离线处理
13.2.2 改进的聊天室一般来说,当一个用户进入一个聊天室后总是希望知道当前有哪些人在线,为此给,小小聊天室,增加显示在线名单和离线处理的功能,( 结果显示 ) 。
1,在线名单增加在线名单的功能,需要修改框架和增加显示列表 。
(1) 修改框架修改 ChatPage.asp中 代码 。
说明:
① 使用 Application对象的 Application("user")
变量来存放进入聊天室的用户列表 。
② 函数 instr()返回一个串在另一个串的位置,
表达式,
instr(1,Application("user"),name & "<BR>") = 0
为真 ( True) 表示字符串 Application("user")中没有子串 Request("UserName") & "<BR>
③ 新增添的框架列表项 <FRAME src="List.asp">
中 List.asp文件显示当前在线名单,并且定期刷新 。
(2) 显示在线名单显示在线名单的页面由 List.asp文件完成,其代码为:
<HTML>
<HEAD>
<META http-equiv=refresh content="5;<%=MySelf%>">
<TITLE>List</TITLE>
</HEAD>
<BODY>
在线名单,<BR>
<%
Application.Lock
Response.Write(Application("user"))
Application.Unlock
%>
</BODY>
</HTML>
说明:显示变量 Application("user")中保存的用户列表,并且 5秒刷新一次 。
2,离线处理当用户离开聊天室的时候,应给出提示,并且从用户列表中删除 。 为此,首先在 Message.asp页面中添加,退出聊天室,的链接项,链接到文件 Exit.asp。
将 Message.asp文件中的:
请输入谈话内容,<BR>
改为:
请输入谈话内容 或
<A href="Exit.asp" target=f3>退出聊天室 </A><BR>
( 代码显示 )
在记事本中输入 Exit.asp的 代码 。
说明:将用户从用户列表中删除后,将重新切换到登录页面 。
13.3 上机练习
【 练习 13-1】 在聊天室网页中使用数组存放用户名,聊天内容 。
下面给出一个使用数组来存放用户名和聊天内容的 聊天室 网页代码,其中的登录页面 ( Login.htm) 与
13.2.1中相同 。
1,聊天页面聊天页面 ( ChatPage.asp) 的 代码 。
2,发送信息页面发送信息页面 ( Message.asp) 的 代码 。
3,显示页面显示页面 ( Display.asp) 的 代码 。
4,在线名单页面在线名单页面 ( List.asp) 的 代码 。
5,离线处理离线处理网页文件 Exit.asp的 代码 。