15.1 课前导读
15.2 课堂教学
15.3 上机练习
15.4 课后作业第 15课 留 言 板留言板是一种简单的类 BBS应用,它是在 HTTP协议下的一种应用 。 本课介绍使用 ASP技术开发简单的留言板系统 。
15.1 课前导读
BBS系统是最常见的一类网上社区,是 Internet上最重要的应用之一 。 随着 Internet主干网带宽与速度的迅速提高及 Web技术的不断发展,许多只提供 Telnet
方式登陆的 BBS系统也提供了允许用户使用 HTTP协议方式进行网上交流的功能,Telnet与 HTTP应用的界线开始交融 。
留言板是一种最为简单的 BBS应用 。 借助留言板,
浏览者可以张贴留言给站主或其他浏览者 。 在企业或单位内部的局域网中,留言板提供了员工之间互相交流的绝好的场所 。
对于一个小规模的留言板系统,通常可以采用文件系统 ( 一个文本文件 ) 来存储留言内容;而对于一般网站上的留言板系统,要求支持对留言内容的查询,
更新和删除等操作,通常需要采用数据库系统 。
与文本存储留言信息的方式相比,采用数据库系统存储留言信息方式可以设定多种查询方式,存储信息的容量也更多,可以作为功能丰富且长期使用的留言系统 。
15.2 课堂教学
15.2.1 文件系统留言板
15.2.2 数据库系统留言板
15.2 课堂教学本课学习以下内容:
① 设计一个小规模的留言板系统,留言内容采用一个文本文件来存储 。 这种方式虽然不支对留言内容的查询,更新等数据库操作,但方便快捷,对一个生命期较短的临时留言系统来说,其功能已经足以满足要求 。
② 使用数据库系统设计一个留言板系统,可以设定多种查询方式,存储信息的容量也更多 。
③ 在上机练习中,将对数据库留言板系统进行改进 。
15.2.1 文件系统留言板
1,留言板主界面
2,创建添加留言页面
3,显示留言页面
15.2.1 文件系统留言板留言板功能的实现由 Index.htm,
MessageAdd.asp,MessageBrowse.asp,Message.txt
等 4个文件来完成 。 Index.htm是一个引导页网页,该页面将用户的留言信息传送到 MessageAdd.asp页面或引导用户查看留言信息 。 MessageAdd.asp将用户的留言信息存储到 Message.txt文件中,该文件中自含有信息显示输出的格式 。 MessageBrowse.asp只是简单地定义一个 HTML头,把 Message.txt文件包含其中送至客户端的浏览器输出 。
1,留言板主界面留言板主界面是 留言板系统 的主页面,该页提供若干输入框接受用户输入 。 留言板的主界面用 HTML格式来写,页面分留言输入框和浏览留言链接两部分 。
在记事本中输入 代码,将文件以 Index.htm为名存盘 。
说明:
① 按,提交,按钮后,将执行留言提交文件
MessageAdd.asp。
②,浏览留言,链接将执行 MessageBrowse.asp
文件来浏览留言 。
③ 按,重写,按钮将清空已经输入到留言框中的内容以接受新的留言内容 。
2,创建添加留言页面添加留言页面首先对留言主界面 Index.htm传来用户的留言内容进行分析,确定内容符合要求后,将收集的留言数据存取到文本文件 Message.txt中 。 如输入框各项内容都不为空,该页面不会显示,而是直接返回 Index.htm页面,否则会提示如图 15-2所示的出错信息,单击,返回留言页面,链接后返回 Index.htm页面 。
在记事本中输入 代码,将文件以 MessageAdd.asp为名存盘 。
说明:
① 当留言主页面 Index.htm中接受用户输入的各输入框有内容为空项目时,会执行如下程序:
Response.Write "<FONT color=red>输入框不能为空白 !</FONT><P>"
Response.Write "<A href=Index.htm> 返 回 留 言 页 面
</A></BODY></HTML>"
Response.End
结束该页面中 ASP程序的运行,输出出错页面 。
② 程序中有如下语句:
Content = Replace(Content,vbCrLf,"<BR>")
Line4 = "<TABLE width=100% bgcolor=LightBlue><TR><TD>"
Line4 = Line4 & Content & "</TD></TR></TABLE>"
它将留言中的换行符即 vbCrLf换成 <BR>,还用表格元素使留言内容显示出来不同的颜色,而 Now()函数获取服务器当前时间作为添加留言的时间记录到本次留言中 。
③ 由于网上留言是多用户环境,在对文件进行读写 操 作 时 将 对 文 件 的 访 问 锁 定,这 里 使 用 了
Application对象的 Lock方法和 UnLock方法建立和解除临界区以保证在 Lock方法和 UnLock方法之间的程序同时只能有一个用户进行操作,从而不会出现两个以上的用户在同时提交留言内容时引起的数据丢失 。
④ 如下两条语句:
objFSO.MoveFile FilePath,OldFilePath
objFSO.DeleteFile OldFilePath,True
分别是文件改名和文件删除的操作,需要注意的是,
在进行这两项操作前,一定先要把文件关闭,否则操作将不能成功 。
3,显示留言页面显示留言页面的实现非常简单,首先定义了一个
HTML页面的文件头,放置该页的标题,显示留言簿,,
再将 Message.txt文件包含进来,最后增加一个链接
,返回留言板,指向 Index.asp页面 。 在记事本中输入代码,将文件以 MessageBrowse.asp为名存盘 。
说明:程序中的语句:
<!--#include file="Message.txt" -->
将 Message.txt包含到本文件中,在 ASP解释这一语句时,Message.txt文件中的所有信息会原封不动地输出到客户端的浏览器中 。 由于真正的显示是由客户端完成的,如文本文件的信息含有 HTML标记,在客户端的浏览器中同样会被解释,因此,要保证留言信息中不含有不配对的 HTML标记,以防留言不能被正确显示 。
15.2.2 数据库系统留言板
1,数据库设计
2,改进后的留言主界面
3,改进后的添加留言页面
4,改进后的留言显示页面
15.2.2 数据库系统留言板文本文件系统只能用以留言量小,栏目简单,生存期短的留言板系统,而真正的留言系统往往要求更为丰富的功能 。 为此,考虑使用数据库来存储留言内容的方式来完成一个更为完善的留言板系统的设计 。
改进后的留言板系统同样包括留言引导主页面,增加留言页面,显示留言页面,只是把存储留言内容的文本文件换成了 Access数据库文件 Message.mdb。
在 新的留言板系统 中,由 Index.asp来检验留言内容中各项数据的正确性,而 MessageAdd.asp和
MessageBrowse.asp则与 Message.mdb相连分别将留言信息存入或读出显示 。
1,数据库设计数据库文件为 Message.mdb,虽然也可以在网页中调用数据库操纵语句进行建立,但使用 Access来建立更为方便 。 该数据库只需要一个表,表名为 Message,
当然,也可以其它名称命名,使用这个名称只是为了更易于理解这个表的含义,并不是说表的名称与数据库的名称之间有什么语法上的联系 。 Message表的结构见表 15-1。
表 15-1 Message表结构字段名 数据类型 必填 索引
Id 自动编号 是 是
User 文本 否 无
Email 文本 否 无
Towho 文本 否 无
Addtime 文本 否 无
Content 备注 否 无
2,改进后的留言主界面改进后的留言主界面使用 ASP页,与前述的留言主界面相比,该页增加了判断表单中输入框内容正确性的语句 。 通过检验的输入被传递到 MessageAdd.asp中进行处理,没有通过检查则提示出错,然后再引到本页的第一个出错内容输入框内 。 在记事本中输入 代码,
并将文件以 Index.asp为名存盘 。
说明:
① 程序中所定义的子程序 Sub Check()实际的运行环境是在客户端,因此,其中使用的语句一定要考虑到这一点 。
② 控件的 Focus()方法可以使控件获得焦点,本程序中使用控件的这个方法使输入焦点转到出错的输入框中 。
3,改进后的添加留言页面添加留言页面并不真正用来显示,其中包含的是
,纯,的 ASP代码,用来将来自 Index.asp的留言内容写入 Message.mdb数据库中 。 在记事本中输入 代码,并将文件以 MessageAdd.asp为名存盘 。
4,改进后的留言显示页面改进后留言显示程序还是采用改进前添加留言的程序结构,只是前者的输出是客户端浏览器,后者的输出是一个 Message.txt文件 。 在记事本中输入 代码,
将文件以 MessageBrowse.asp为名存盘 。 改进后的显示界面 。
15.3 上机练习当留言内容较多时,查看留言显示页面会很不方便,同时网页的显示速度也将很慢 。 为此可以将页面改为分页显示 。
【 练习 15-1】 修改留言显示页面为分页显示 。 只需修改 MessageBrowse.asp的 代码,其他程序不变,在浏览器中 执行程序 。