基于ASP技术的教育网站的设计与实现
- 格式:pdf
- 大小:267.99 KB
- 文档页数:6
http://www.paper.edu.cn
基于ASP技术的教育网站的设计与实现
李新1,2,刘清堂1,2,李娜1,2
1.华中师范大学教育信息技术工程研究中心 湖北.武汉 430079
2.华中师范大学信息技术系 湖北.武汉 430079
摘 要:文章以教育网站的开发为基础,介绍了基于ASP技术的教育网站的设计与实现过程,
对网站的主要功能及实现技术做了详细的分析和阐述,为各类教育网站的设计提供了良好的
参考。
关键词:ASP,网站, 设计, 实现,技术
0 引言
随着动态网站技术的发展和成熟,众多教育单位都开始建设自己的网站。自主建设网站
的优势比较多:它能做到围绕某个领域按需设计,借助多样的技术打破千篇一律的模式,还
能考虑与其他系统的兼容会话问题,其扩展性和重用性更强。这里,我们采用ASP技术自行
开发了一个知识服务的门户网站,该网站建设初期主要完成首页及论坛的设计与实现,要求
能根据用户身份的不同具有不同的权限,在进入其他系统时不仅不需要再登陆而且还能因权
限不同享用不同的操作范围。设计的重点在于网站几个典型模块的实现,BBS论坛的实现以及
权限的分配和与其他系统的会话问题。
1 网站的设计
1.1 网站的整体框架设计
本网站主要面向广大师生而设计,以知识服务为宗旨,是探讨学习体验交流zplusz的网
络平台。在这里,客户端可以在无需安装zplusz软件的情况下,有指导的练习zplusz的各
种功能;还可以在资源管理系统中检索到有用的zplusz作品;在考试管理系统,可以根据用
户权限的不同享受不同的知识服务,学生可以在线测试并查询成绩,教师可以自行组卷、阅
卷、并上传优质试题。在这里我们只介绍知识服务平台门户网站的设计和实现,图1给出了
网站的整体框架图。 网站的整体框架
网站的前台网站的后台管理
网站的首页BBS首页
新闻管理论坛管理其他管理员登陆公告管理用户管理滚动公告新闻发布计数器数据显示知识服务动态学习区导航栏其他用户登录导航栏用户登录版块主题区数据显示其他个人管理
图1 网站的整体框架图
从上图可以看到,用户连接进入本网站以后,能直接查阅新闻、公告、论坛的帖子等信
息,计数器会实时统计网站的访问次数,各种数据显示会让你注意网站又有新的东西,在知
识服务动态学习区,能体验zplusz软件的各种功能并保存自己的作品;如果用户注册登录以
后,则活动范围扩大,在论坛中能发帖、回帖,拥有自己的个人管理档案,也能进入其他系
统。系统管理员登陆网站以后,能对各种已发布的信息进行增、删、改、查,能对已注册的
用户审核其权限并管理。另外,要说明的是上图中几个“其他”模块,指的是网站的非重点
-1- http://www.paper.edu.cn
易实现的部分,如站外资源链接、动态广告、网站标志等。
1.2 网站的数据库表的设计
本网站采用SQL SERVER2000作为数据库服务器,其安全性能较好,比较适合于中小型系
统的开发。它与前台的程序配合,通过浏览器完成数据存储、查询等操作。
在网站开发过程中,为了实现各模块、论坛、后台管理等功能,在数据库中主要设计了
以下几个表:tblUserInfo(用户信息表);tblAdmin(系统管理员表);tblGgInfo(公告信
息表);tblNews(新闻信息表);tblBBSItems(论坛信息总表);tblTopic(论坛主题区表);
tblBoard(论坛版块信息表)。
前四个表比较简单,字段的设置主要依据功能实现时所需要的信息。如用户信息表,设
置了USER_ID,USER_NAME,PWD,REAL_NAME,NICK_NAME,IDENTI等字段,其中把USER_ID
作为标识,便于以后写SQL语句时作为寻找某条特定记录时的依据,其他表也设立了独特的
标识。在设计新闻和公告表时,则要设计信息ID号、标题、内容、作者、发布日期等字段。
tblBBSItems(论坛信息总表)的设计相对复杂,字段有ITEM_ID,ITEM_CONTENT,
ITEM_TITLE,AUTHOR,COMPOSE_DATE,MODIFY_DATE,IS_ORIGINAL,FATHERS_ID,REPLYD_TIMES,
BROWSED_TIMES,LATEST_REPLICATION_ID, STATES ,TOPIC_ID,BOARD_ID。此表描述了帖
子的信息,如帖子的ID号,帖子的标题、内容、作者、撰写日期、修改日期、是否是原创帖,
此帖被回复的次数,被浏览的次数,最近回复的作者的ID号,帖子的状态,帖子所属的版块
的ID号,帖子所属区的ID号。其中FATHER_ID描述的则是如果该帖为非原创帖,那么它所
回复的原创帖的ID号,如果是原创帖,则FATHERS_ID号与帖子的ID号相同。
论坛主题区表中主要有TOPIC_ID,TOPIC_TITLE两个字段,版块信息表结构与主题区表
相同,是版块的ID号和版块的名称,这两个表可以用来实现论坛间导航和跳转。
2 网站具体实现
在介绍动态网站实现的技术之前,有必要对ASP动态网站实现原理有所理解。
ASP文件是由HTML代码、脚本语言(VBScript或javascript)、ASP语句组成,HTML描
述了界面的显示样式,脚本语言和ASP语句则用来描述程序的逻辑能力及其与数据库的操作。
动态网站的实现过程就是:将ASP文件发送给服务器以后,由服务器的特定语言引擎对此文
件进行分析和执行并生成相应的HTML文件,服务器返回HTML文件给浏览器显示结果。
2.1 常用的数据库连接技术
在ASP文件中,经常有与数据库连接的要求,因此可以将数据库的连接、关闭等功能以“sub
openDB()或closeDB()……end sub”写入一个ASP文件,如:conn.asp。
在涉及数据库调用时,将conn.asp作为包含文件被引用,连接数据库时,直接调用openDB
就可以了。 通常连接数据库后就要建立recordset对象,以便对数据进行访问并返回查询的
结果,此对象的建立与释放可以与数据库的建立与关闭分别写在一起。
Conn.asp中就包含这样两个过程:
…………
Sub openDB()
Set conn=server.createobject("ADODB.Connection")
conn.open "Driver={SQL Server};Server=localhost;Database=DBName;Uid=sa; Pwd="
set rs=server.createobject("ADODB.Recordset")
End sub
Sub closeDB()
If IsObject(conn) Then
if not(conn is nothing) then
set rs=nothing
conn.close
-2- http://www.paper.edu.cn
set conn=nothing
end if
End If
end sub
…………
2.2 注册登录技术
新用户必须先填写注册信息,数据入库成功后方可成为本站用户。在注册时,在身份一
栏提供了学生、家长、老师、其他四个选项供选择,这四种身份的功能是不一样的,用户最
好如实地选择自己的身份,这样系统才会提供最适合你的服务。登陆成功后,用户信息被保
存在session中,用户便可进入网站的各个系统,当某系统如BBS要取得用户的个人资料时,
可以从session中取得用户名,然后查询到更多的用户信息;当某系统需要判断身份以显示
不同页面时,也能从session中取得身份来判定权限。通过session做到了单点登陆,解决
了因权限不同显示不同页面的问题,方便了与个人有关资料的提取。
注册登陆的流程图如图2:
判断session("USER_NAME")是否为空否
进入系统是显示登陆注册界面
输入用户名和密码并提交
否
将用户信息存入SESSION变量填写注册信息
合法将用户的注册信息插入表中保存页面加载
是否为新用户
是否
检查信息规范性及用户的唯一性用户名和密码都正确
进入系统否给出警告
图2注册流程图
2.3公告和新闻的实现技术
公告栏一般设计为循环滚动的样式,用于发布网站的重要通知等;新闻栏窗口则只列举
出最新的几条新闻标题,用户如果想阅读更多新闻,要单击“更多”进入新闻的列表界面。
公告的实现过程中主要用到HTML的活动字幕标记和弹出窗口的函数
MM_openBrWindow(theURL,winName,features)。和标记内是查询表后循
环显示的公告标题,每个公告标题再进行超链接,链接的单击动作的作用是:传递此公告的
ID号给公告的显示页面gg-show.asp,显示页面根据ID号查询到公告的详细信息后,由
MM_openBrWindow打开。具体语句如下:
lbars=yes,width=400,height=430')" class="linkcss"><%=rs("GG_TOPIC")%>
新闻的实现过程中为了只呈现最新的几条新闻,且新闻标题过长时只显示标题的前10个
-3- http://www.paper.edu.cn
字加省略号,所采取的关键技术是在查询数据库时,按修改时间降序排列记录,并输出最新
的几条新闻标题。标题字长的截取则用到Left(string, length)函数,它能返回此字符串由
左算起特定数量length个字符,如果Length大于或等于 string 的字符数,则返回整个字
符串。具体语句如下:
"&
left(rs("NEWS_TITLE"),10)&"...
2.4 BBS实现技术[1]
BBS本身是一个系统,要求进入特定主题区后能阅读帖子,登录后能发帖、回帖和修改自
己的已发帖。在浏览原创帖子列表页面,能显示各帖被浏览的次数、最近回复人、最新回复
时间、及发表原创贴子的作者名、发表时间等信息。当登录者单击帖子的标题阅读具体内容
时,能迅速看到此原帖的内容及此原帖的所有跟帖,并能对原帖进行新的跟帖,对某条跟帖
进行再回复。如果发帖的用户查看自己的已发帖,还能对此已发帖进行修改和删除。当所有
的数据信息经过数据库存储后,就能实时的显示各种最新信息。
下面介绍实现上述论坛功能的关键技术:
(1)发原创的新帖
进入某主题区如“灌水区”发帖,当单击“灌水区”时将主题区的ID号(TOPIC_ID=1)
传递给发帖页面compose.asp,发帖页面接收TOPIC_ID=1并将此信息与发帖的内容一起传递
给保存页面save.asp。这样做的目的是将帖子与所在的主题区联系起来,表示此贴发布在灌
水区。
在save.asp中进行了如下几个操作,且此操作作为事务处理,被一次性执行。如图3: 令此记录的父节点fathers_ID和最新回复帖的ID号都等于帖子的ID号读出所有的ITEM_ID,用rs.movelast跳到最后一条记录,即得到刚存入的最新记录将撰写的信息存入数据库,并取得此时刻撰写时间,且IS_ORIGINAL中存入1 图3存储发帖的事务处理
可以看到信息保存过程中,标明了帖子的原创性,而且将父节点和最新回复帖的ID号都
初始化为帖子的ID号。这样做的目的,是为后面读出原贴及跟帖时,只要查询它的所有回复