毕业论文 第5章 系统详细设计与实现
第5章 系统详细设计与实现
5.1 前台设计
由于前台功能模块较多,而各模块的实现过程都是类似的,所以对于系统前台,现在只介绍系统重点设计。
5.1.1 前台页面设计与实现
本系统中所有页面都采用了一种页面框架,该页面框架采用一分栏结构,分为4个区域:页头、功能栏、内容显示区和页尾。网站前台首页面的运行结果如图5.1所示。
图5.1 前台首页面的运行结果
- 17 -
毕业论文 第5章 系统详细设计与实现
实现前台页面的设计需要分别创建实现各区域的JSP文件,如实现页头的top.jsp、实现功能栏的menu.jsp、页尾文件end.jsp和首页面中需要在内容显示区显示的default.jsp等JSP文件。下面主要介绍前台框架页面indexTemp.jsp的实现,实现页面显示代码如下:
<%
String mainPage=(String)session.getAttribute(\ if(mainPage==null||mainPage.equals(\ mainPage=\%>
<%@include file=\
| ||
<%@include file=\ | |
5.1.2 前台显示概述
论坛的前台显示主要包括:首页面的论坛类别显示、某版面下根贴的列表显示、我的帖子的列表显示、精华帖子的列表显示、搜索后根帖的列表显示和根贴与回复贴内容的详细显示。
其中在根贴的列表显示系列中,我的帖子、精华帖子和搜索这3个功能的实现是相似的,最终都是生成一个查询SQL语句,并通过执行该SQL语句获取一个符合条件的信息集合,然后返回页面进行显示。不同的是它们生成SQL语句的方式,列表显示我的帖子,需要获取当前登录用户的用户名,然后生成查询SQL语句;列表显示精华贴,要执行的是一个固定、已知的SQL语句;列表显示搜索到的根贴,需要从页面表单中获取条件和搜索关键安后,才能生成SQL语句。
不仅如此,这3种功能的页面信息显示也是相同的,不同的是通过Struts标签输出信息时所引用的对象不同。
现在介绍首页面论坛类别显示、某版面下根贴的列表显示和根贴与回复贴内容的详细显示。
5.1.3 查看首页面的论坛类别
该页面的实现效果是:分类显示论坛类别,并以超链接形式显示属于该论坛类别中所有版面名称并显示当前版面的版主和一些帖子的相关信息,如图5.2所示。
- 18 -
毕业论文 第5章 系统详细设计与实现
图5.2 首页面的论坛类别显示效果图
在首页面中显示论坛类别时,首先通过Struts中的logic标签库中的iterate标签遍历存储在session范围的List集合对象,该List集合对象是在处理用户访问论坛首页面时的请求处理类中实现的,其中存储的是封装了论坛类别信息的ActionForm;然后再使用bean标签库中的write标签输出从难从List集合对象中遍历出的ActionForm中的属性信息,即可实现论坛类别的显示。在页面中实现输出论坛类别的关键代码如下:
- 19 -
毕业论文 第5章 系统详细设计与实现
5.1.4 查看某版面中根贴列表
该显示实现的效果是:显示某个版面中所有的根贴。该显示方式将单独显示版面中的置顶帖子和其他帖子。对于置顶帖子的显示,将按照帖子被置顶的时间进行降序排列;对于其他帖子的显示,将按照帖子被操作的时间进行降序排列。每条根贴显示其状态、标题、回复数、发表者和最后回复信息,如图5.3所示。
图5.3 某版面中所有根贴的显示效果图
当在首页面中单击以超链接形式显示的某个版面的标题时,将列表显示该版面中的根贴,该显示要将置顶帖子与其他帖子分类显示。
实现该功能,首先需要获取当前版面中的根贴,这可通过当前版面的ID值查询数据表获取,然后分别将获取的置顶帖子列表和其他帖子列表存储在session范围内,最后回到JSP页面通过logic标签库中的iterator标签进行遍历输出。
下面给出在JSP页面中列表显示某版面中根贴的关键代码:
- 20 -
毕业论文 第5章 系统详细设计与实现
5.1.5 查看根贴和回复贴内容
该显示方式实现的效果图是:显示根贴的详细信息,并显示该根贴的所有回复帖,另外对每条帖子都显示发表者的部分信息,如图5.4所示。
图5.4 显示根贴及回复贴的详细显示效果图
对于根帖的发表者的信息可通过从获取的根贴信息中取出根贴的发表者,然后将其作为查询条件查询用户信息数据表来获取,最后存储到session对象内。
对于回复贴的回复者信息可设想通过一个Map对象进行相相存储,该Map对象以加复者的用户名为关键安来存储封装用户信息的ActionForm类。在获取了存储回复贴的集合对象后,首先对该集合对象进行循环处理,在循环体中获取当前回复帖子的回复者的用户名;然后判断在存储回复者信息的Map对象中是否已经存在以该用户作为关键字的映射,若不存在,则以该用户名为条件查询用户信息数据表获取用户信息,接下来以该用户名作为关键字存储获取的用户名信息到期Map对象中;最后返回到JSP页面中通过Struts标签和EL表达式输出。获取回复贴的回复者信息的关键代码如下:
sql=\Map answerMap=new HashMap();
- 21 -
相关推荐: