当前位置:首页 > BBS论坛的设计与实现
查和分析,确定现有环境的特征,正确定义目标软件的特征 。因此,需求分析工作是对应用环境及其问题进行理解和分析,为问题涉及的信息、功能及系统行为建立模型,将用户需求精确化。
通用论坛BBS系统设计实现以下功能:
①用户中心:包括用户注册、用户登录、用户注销、增加好友、删除好友、增加黑名单、删除黑名单、发送短信息、查看短信息、删除短信息、修改个人资料等功能。
②主题中心:包括主题分类(论坛版块)、查看主题、查看回复、发表主题、发表回复、对主题或回复进行搜索等功能。
③管理员中心:管理员对论坛进行一些基本的维护,包括对帖子的删除、置顶、设为精华帖,对用户的删除、授权,对版块的权限管理,对用户组及用户组的权限的管理等[2]。
④统计功能:对论坛的相关参数进行统计。
2.2.1 用户中心
当用户进入网站首页时,会有一个登录窗口,已经注册的会员用户可以在这个窗口中登录。没有登录的用户只能查看主题,不能发表主题或评论。登录之后,用户就可以发表主题或回复;查看或修改自己个人信息,包括修改用户头像,可以选择自己喜欢的图片作为自己的头像;可以给好友发送短信息,查看或删除自己收到的信息;用户可以在好友与黑名单里设置自己的关系网,让用户与自己的好友交流更加方便,也可在让用户不接收不愿意见到的人的信息。
没有注册的用户可以在登录窗口中点击注册超链接进入新用户注册页面,输入用户名、密码、密码提示问题、提示问题答案及安全邮箱,即可注册成为网站的会员。密码提示问题是为找密码设置的,当用户忘记密码或密码丢失后可以通过输入提示问题答案来找回密码,如果用户回答正确,系统会自动发送一封邮件到用户的安全邮箱里,提示用户修改密码。
2.2.2 主题中心
系统有版块,主题和回复,其中版块是对主题的分类,回复是在主题下发表的,是用户对主题的评论。当用户进入首页时会显示论坛的所有版块及每个版块下的主题数,帖子总数,最后发表主题的用户、时间。进入版块之后显示该版块下的主题及该主题下的回复数,点击数,最后发表评论的用户、时间。。点击主题名进入主题页面,该页面有主题内容,发表该主题的用户的用户名、积分、用户组、
注册时间,该主题
下的回复及发表回复的用户的个人信息。
已登录用户可以在版块下发表主题,在主题下发表回复,还可以按关键字对主题或回复进行搜索,并支持模糊查询。匿名用户只能查看主题内容,对主题或回复进行搜索,但不能发表主题,不能发表回复。
2.2.3 管理员功能
管理员作为一个特殊的用户,除了拥有普通用户拥有的功能外,还可以修改用户权限,管理用户组,管理版面,设置版主,控制用户组权限。版主作为权限最少的管理者只能对自己所管理的版面的主题进行删除、置顶,设置精华贴,屏蔽用户的回复,编辑版面说明等。
2.2.4 统计功能
显示论坛当前注册总人数、当前帖子总数、论坛点击总数、当前在线人数,会员人数以及游客人数。
用户表现积分排行,调动用户积极性。用户每次上线、发表主题或回复都会得到相应的积分,并以此来体现用户的活跃程度。
系统会对主题按点击数进行排序,对版面按主题数进行排序,帖子点击统计,方便了解热点话题。本日版面排行榜,本日作者排行榜。
2.3 开发工具及相关技术简介
本系统采用的工具有JDK 1.5、Tomcat 5.0、MyEclipse 5.5、MySQL5.0,使用的技术有Java、Servlet、JSP、JavaScript、XML、Struts、Spring。
2.3.1 相关工具简介
(1) JDK 1.5.0
JDK是Sun 公司Java应用程序和组件的开发环境,是编译和测试工具,也是提供java程序的Java虚拟机平台,是调试和运行JSP所不可缺少的工具。本系统采用JDK1.5.0版本[3]。
(2) Tomcat 5.0
Tomcat是开源的servlet和JSP容器(Sun官方推荐容器),它是Jakarta项目中一个重要的组成,由Apache、Sun和其他一些公司及个人开发。Tomcat内部实现了Servlet和JSP引擎,而且扩展了一些应用服务器的功能,例如JNDI、数据库连接池、用户
事务处理等。目Tomcat被广泛地应用于中小规模的Java web应用中[4]。 (3) Eclipse/MyEclipse 5.5
Eclipse 是基于Java 的开放源代码的可扩展开发平台,Eclipse平台提供软件开发工具的集成服务,所有开发工具(包括JDE和PDE)都是用插件的形式提供的。这种设计使得Eclipse具有开放式可扩充的结构[5]。
MyEclipse是在Eclipse集成开发环境中提供Web应用程序开发的插件,在目前软件开发的Java领域中,MyEclipse是一个使用非常广泛的工具。
MyEclipse是Eclipse软件的一个插件,Eclipse软件是免费的,但MyEclipse不是一个完全免费的产品,需要购买。 (4) MySQL 5.0
MySQL数据库是一个较小型的数据库系统,同时是一个多用户、多线程强壮的SQL数据库服务器,并提供免费的安装软件[6]。
由于它对平台环境要求不高,安装方便,适合中小型系统的开发。
2.3.2 相关技术概述
(1) Java语言概述
Java编程语言是一种通用、并发、基于类且面向对象的语言。Java编程语言与C和C++相关,但是在组织方式上有差别,Java具有C和C++遗漏的许多优点,同时兼有其他语言包括的一些思想。它旨在成为一种生产语言,而不是一种研究语言,并且正是如此[7]。 (2) Servlet技术概述
Servlet技术主要是为了使用Web上的HTTP协议而设计的。Servlet是在Web服务器上运行的程序,Java Servlet可以用于处理客户请求或生成动态Web网页。Tomcat是支持Java Servlet和JSP的Web服务器[8]。 (3) JSP技术概述
JSP (Java Server Pages)是由Sun 公司倡导,许多公司参与,共同建立人一种动态网页技术标准,JSP技术是在Servlet技术基础上发展起来的。它正在飞速发展中,现在已经成为Java服务器编程的重要组成部分。 (4) JavaScript技术概述
JavaScript是一种基于对象(Object)和事件驱动(Event Driver)并具有安全性能的脚本语言,它所能提供的功能非常强大。 JavaScript是一种简洁的面向对象的描述语言,是专门用来开发Internet客户端和服务器端的应用程序,它可以被轻易的嵌入到HTML文件中,使用JavaScript浏览器
以回应使用者的需求事件而不用通过网络来回传资料,这样,使用者的资料就可以直接被客户端应用程序所处理,它的出现弥补了HTML语言的缺陷,它是Java与HTML折衷的选择[9] (5) XML技术概述
从1998年2月W3C正式推出XML(eXtensible Markup Language的缩写,意为可扩展的标记语言)后短短的三年间,XML以惊人的速度在广大的设计人员中传播开来。随着Internet的飞速发展,HTML开始对更多的网络设计要求显露出疲态。XML也就是在这种大环境下孕育而生的[10]。 (6) Struts 概述
Struts使用Model2体系结构。 ActionServlet 负责控制流程。另外一个Struts类,Action,负责存取业务逻辑类。当ActionServlet类从窗口中获得一个请求时,它使用请求的URI(也称为路径)来决定是哪一个Action来处理该请求。一个Action可以检验输入的合法性、通过业务逻辑层来读取数据库或者其他数据服务中的信息。
要校验输入的合法性或者是使用该输入来修改数据库中的内容,Action需要用户提交给它处理数据。为了避免每一个Action都要处理从请求中输入数据的操作,Struts将这些输入数据绑定到JavaBean中。每一个这样的Bean都是Struts中ActionForm类的子类。ActionServlet通过查看请求的路径就可以决定哪一个ActionForm用来包含输入数据。这些ActionFormod 类都应该是org.apache.struts.action.ActionForm的子类。
每一个HTTP请求都必须有一个HTTP响应。一般而言,Struts自已并不生成响应,而是将请求转发到其他的资源上去—例如JSP页面。Struts提供一个名为ActionForward的类来将逻辑名保存到每个面的路径。当业务逻辑部分已经执行完成后,Action会选择一个ActionForward,并且将它返回给每个总控servlet。总控Servlet 会使用在该Action Forward中存储的物理路径来调用对应的页面来完成HTTP响应部分。
Struts将所有这些方面的细节信息都定义在ActionMapping对象中。每一个ActionMapping对象都对应于一个指定的路径。当该路径被请求时,总控servlet会获取对应的ActionMapp world wide webing对象。该对象会告诉总控servlet该使用哪些Action,ActionForm和ActionForward对象。
全部有关 Action,ActionForm,ActionForward以及ActionMapping的信息和其他的配置信息都在Struts-config.xml文件中声明。ActionServlet在启动的时候会读取该文件,并且创建包含所有这些配置对象的数据库。在运行时刻,Struts会使用这些对象,而不是文件本身[11]。
共分享92篇相关文档