jsp新闻发布系统设计参考文档

  • 格式:doc
  • 大小:98.50 KB
  • 文档页数:46

jsp新闻发布系统设计参考文档第19章新闻发布系统教学要求, 学会分析设计一个较复杂的新闻发布系统, 学会制作较复杂的动态新闻页, 学会设计动态新闻的管理模块, 领会Go To Related Page的用法, 能够综合应用Ultradev 4设计一个较复杂的网站19.1 分析新闻发布系统分两大功能模块:供所有用户查看的动态新闻显示模块和只供管理员进行管理新闻及相关内容的新闻管理模块,也就是用户界面和管理界面。

19.1.1 用户界面分析用户界面所包含的文件, news.jsp 该页是查看新闻的主页面。

包括新闻类别、新闻标题等内容。

如图所示的是制作好的news.jsp页在浏览器中的样子。

动态新闻页, more.jsp 该页用来显示所有新闻内容。

在news.jsp有一个【更多新闻】链接,该链接就是指向该页的。

, ShowNews.jsp 该页用来显示新闻具体内容。

news.jsp中的新闻标题就是链接到该页的。

, Buttom.htm和head.htm 这两个页是供news.jsp和more.jsp嵌入用的,这样可以达到定制用户界面的页首和页尾的功能。

相关数据表,表tNewsSubjectID表tNewsSubject 用来存储新闻类别。

表中的每条记录有两个字段:fSubjectName字段,用来保存新闻类别;fSubjectID字段,用来保存标记新闻类别的标号,这个标号在表中是惟一的。

如右图所示。

, 表tNews 用来存储新闻的具体内容。

表中字段fNewsID保存的是每条记录的编号,这个编号惟一标识一条新闻。

字段fTopic保存着新闻标题,字段fContent保存着新闻的具体内容,字段fDate保存着录入新闻时的日期,字段fAuthor保存着新闻的作者,字段fKeyWords保存着查找新闻的所需要的关键字,字段fSubjectID保存着标记新闻类别的标号,这个标号在这个表中不是惟一的。

如图所示。

表tNews19.1.2 管理界面分析新闻管理系统结构新闻管理系统可分为密码管理、类别管理和新闻类别管理3部分。

这3个功能模块通过一个menu.jsp页联系起来。

与类别管理相关的文件这个功能模块包括以下4个网页文件。

, subMan.jsp 通过该页可以完成对管理类别的编辑、添加和删除的操作。

, SubDel.jsp 删除新闻类别。

, SubEdit.jsp 编辑现有的新闻类别。

, SubAdd.jsp 添加新闻类别。

与新闻内容管理相关的文件这个功能模块包括以下3个网页文件。

, NewsMan.jsp 通过该页可以完成对新闻内容的编辑、添加和删除的操作。

编辑新闻内容的操作在NewsMan.jsp页中完成。

, NewsDel.jsp 删除新闻内容。

, NewsAdd.jsp 添加新闻内容。

其他相关文件, Menu.jsp 通过该文件来统一管理新闻系统的各项操作,即从该页可进入对管理系统的密码、新闻的类别和新闻的内容的操作。

在浏览器中如图所示。

menu.jsp页, Adm.htm 这是“管理”部分的主页面,是一个网页框架文件,它由左右两个框架组成,左边的框架用来显示menu.jsp页,右边的框架用来显示与新闻类别管理相关的页和显示与新闻内容管理相关的页。

利用网页框架,使管理员管理新闻系统的各个内容更方便,操作简单。

, Login.jsp 登录页,这是设置安全机制所用到的。

进入新闻管理系统前必须登录。

, Sorry.htm 登录失败时转向该页。

, Welcome.htm 首次进入新闻管理系统时在Adm.htm页右边的框中调用该页。

说明新闻管理系统的功能。

, PassMan.jsp 对本系统的密码管理。

完成这个新闻管理系统主要是对这组文件的制做,以及合理的安排这些文件。

相关数据表新闻管理模块用到了3个数据表。

表tNewsSubject和表tNews,这两个表已介绍过。

还有一个用于存储用户名和密码的表tNewsAdmin。

如图所示。

表tNewsAdmin表tNewsAdmin中字段fAdminName存储登录管理系统时用的用户名,字段fAdminPass存储登录管理系统时的密码。

对新闻管理的各个操作,也就是对服务器端这3个表的操作。

19.2 制作动态新闻页动态新闻页news.jsp的制作,使之能够动态地显示当日以及最近几天的新闻。

由于新闻的标题和内容都存储在服务器端相应的数据表中了,更新或者添加新闻的操作是对服务器端相应数据表中的记录进行更新,或者向数据表中插入记录。

所以,该页的制作主要是定义记录集,向页面添加动态内容,添加服务器行为。

这个页动态内容分为3部分。

, 第1部分是能够动态地显示所有新闻的类别标题,也就是news.jsp中的链接【国际新闻】、【国内新闻】、【体育新闻】等类别标题。

这一部分动态内容就是对新闻进行分类。

, 第2部分是当前列出新闻的类别标题。

也就是news.jsp中黑色加粗的【国际新闻】。

这一部分随着所选新闻类别变化而变化。

它的作用只是标记当前列出的新闻标题的类别。

, 第3部分也就是news.jsp下半部分所示的新闻标题了。

这一部分列出的新闻标题属于当前所选的新闻类别,从这一部分可以阅读相关新闻的详细内容。

这3项需要分别建立记录集,因为它们需要的动态数据不同。

但建立的这3个记录集还必须通过一个变量传递参数,以便使这3项显示的内容一致。

可通过以下步骤来完成该新闻页。

1. 1. 1. 建立记录集。

2. 2. 2. 向页面绑定动态数据。

3. 3. 3. 添加服务器行为。

其实该页还包含一个新闻搜索器,在第10章章中有详述,在此不做介绍。

下面来制作这个动态新闻页news.jsp。

19.2.1 为动态新闻建立记录集为该页添加动态内容的首先要建立相应的记录集。

1. 1. 1. 在站点文件窗口中打开news.jsp文件。

该页的静态部分已经设计好了。

如图所示。

新闻页的初始文件2. 2. 2. 打开数据绑定监视器,打开定义记录集对话框,建立一个取得新闻类别的记录集。

单击监视器面板上的“+”按钮,从弹出的菜单上选择Recordset(Query)选项,打开定义记录集对话框,这时如果出现Advanced Recordset对话框,单击Simple按钮,转到Simple Recordset对话框。

, 在记录集对话框的Name文本框中输入rsSubject。

, 在Connection下拉列表中选择connBHP。

, Table下拉列表框选择存储新闻类别的数据表tNewsSubject。

表tNewsSubject只有两个字段:字段fSubjectName和字段fSubjectID。

这两个字段分别保存的是新闻类别和新闻类别编号,而建立的这个记录集需要从数据表tNewsSubject中选取这两个字段,字段fSubjectName中的数据作为第1部分的动态内容,字段fSubjectID中的数据作为动态参数。

, 在Column处选择All单选项。

, 在Sort处设置成按fSubjectID字段的升序排列。

3. 3. 3. 单击OK按钮保存设置。

这样第1个记录集已定义好了。

设置好的记录集对话框如图所示。

4. 4. 4. 为第2部分动态内容定义记录集。

打开定义记录集对话框,如出现Simple Recordset对话框,单击Advanced按钮,转到Advanced Recordset 对话框。

设置如图所示。

在SQL文本框中输入下面的SQL语句:SELECT fSubjectNameFROM tNewsSubjectWHERE fSubjectID =iNewsID这是一条SELECT语句。

描述的仍是从表tNewsSubject中选取记录中的字段fSubjectName,最后的WHERE子句规定了只选取字段fSubjectID的值等于变量strNewsID中的值的记录。

变量iNewsID中的值是数值型,这个数值标记着当前列出的新闻类别,这样就把当前新闻类别选取出来了。

由于用到了变量iNewsID,所以必须在Variables处定义并赋初值。

在Name列输入变量名strNewsID,在Default Value列处输入1作为该变量的默认值,即第2部分动态内容在默认情况下列出标记为1的新闻类型和Run-Time Value列处的运行时值request.getParameter(“iSubjectID”)。

第2、第3部分的动态内容所对应的记录集就是通过参数iSubjectID传递动态数据作为选取记录的条件,这样使得3部分的动态内容一致。

5. 5. 5. 为第3部分动态内容定义记录集。

打开高级记录集对话框。

设置如图所示。

在SQL处输入SQL语句如下:SELECT fTopic, fNewsIDFROM tNewsWHERE fSubjectID = iCurrentSubIDORDER BY fDate DESC这个SELECT语句是从数据表tNews中选取记录。

WHERE子句规定了只选取字段fSubjectID值等于iCurrentSubID变量值的记录,并且只取记录的fTopic字段和fNewsID字段。

子句ORDER BY fDate DESC规定了记录按字段fDate中的值(也就是日期)从大到小排序,从动态新闻页的内容上说就是先显示最近发布的消息。

DESC规定按字段值的降序排序,ASC规定按字段值的升序排序。

上面语句仍用到了变量,所以必须在Variables处定义初值。

在Name列输入变量名iCurrentSubID,在Default Value列处输入1作为该变量的默认值,即第3部分动态内容在默认情况下列出标记为1的记录,和Run-Time Value列处的运行时值request.getParameter(“iSubjectID”) 。

向这个变量传递参数的值同向第2部分动态内容传递参数的值相同。

19.2.2 使新闻动态显示及时性是新闻的要素之一,必须使新闻动态显示在页面上。

所以,建立了记录集后,开始向页面绑定动态数据。

这一操作很简单,添加步骤如下。

1. 1. 1. 向第1部分动态内容添加动态数据。

添加动态数据的位置如图所示的两条粗线之间的表格中,也就是图中光标所在的位置。

第1部分添加动态数据的位置2. 2. 2. 打开数据绑定监视器,单击记录集rsSubject前的“+”号,展开该记录集。

选中fSubjectName字段,然后把光标放在上图所示的表格中。

3. 3. 3. 单击数据绑定监视器面板上的insert按钮,这样动态数据就添加到相应的位置了。

4. 4. 4. 按照上面的步骤向第2部分和第3部分动态内容添加动态数据。

把记录集rsCurrentSubject中的fSubjectName字段和记录集rsNews中的fTopic字段分别绑定到第2部分动态内容处和第3部分动态内容处。