旅游论坛BBS系统
设计与实现
学 生 姓 名 肖雄
指 导 教 师 杨洋
专 业 计算机科学与技术
学 院 信息技术工程学院
2016年3月8日
毕业设计(论文)任务书
姓名: 肖雄 班级:12计科 毕业设计(论文)题目: 旅游论坛BBS系统设计与实现 学院:信息技术工程学院 专业:计算机科学与技术 立题目的和意义: 目的:设计的首要目的是运用已经学习到的MyEclipse工具和MySQL数据库知识自主实现一个实用的系统,使得现有知识得到更好的巩固,更加熟练的操作MyEclipse工具和MySQL数据库。同时在实现中学习到更多的知识,能更深入掌握JSP和了解软件开发的全过程,为以后的学习与工作打下坚实的基础。 意义:BBS(电子布告栏系统)是在网上提供交流的手段.它可以用于公告、群组讨论、社区内通信、联系、在线聊天、找工作等,利用网络实时、便捷的特点来方便人们的交流、联系和娱乐。
技术要求与工作计划: 技术要求:本设计所做的网站采用三层结构,以MySQL数据库为后台数据库,以JSP网页作为表现层实现,以Struts整合Spring进行模型控制,因此,要求开发人员熟悉数据库的基本知识,通晓MySQL数据库的特点和用法,掌握Java语言的基本知识,能熟练运用JSP进行网站开发,以及对Struts和Spring框架有所掌握.熟练使用MyEclipse开发工具,了解Tomcat服务器的工程部署。 工作计划:利用一个月来学习Java语言,JSP语言,Struts及Spring框架,MySQL数据库,同时进行需求分析. 利用大约一个半月的时间进行系统设计和编码. 利用十天左右进行系统调试和测试。 利用半个月时间完成论文编写和审定. 时间安排: 2015。7.1—2015.12.1 学习Java语言,JSP语言,Struts及Spring框架,MySQL数据库. 2015。12。5-2016。2。1 进行系统的概要设计,详细设计,代码的编写。 2016.2。2-2016。2.15 进行系统的调试与测试. 2016。2.15—2016。3.11 论文的编写和审定。
摘 要
通用论坛BBS系统是按照MVC模式进行设计实现的,采用Tomcat作为后台服务器,以MySQL数据库作为数据服务器,使用Struts和Spring进行逻辑控制,表现层用JSP页面显示,用于在网络上为网民提供一个信息发布、获取的场所。实现了查看、发表、删除帖子功能,论坛帖子版块控制,注册用户可以修改自己的个人信息、增加好友与黑名单以及用户之间发送短信息,管理员可以对用户、帖子,版块、用户组、版块权限和用户组权限进行管理。论文从问题的提出、基本设计思想、数据的流向到具体的设计过程都做出了详细论述。
关键词:BBS;论坛;主题;回复
1 绪 论
1.1 课题研究的目的及意义
设计的首要目的是运用已经学习到的MyEclipse工具和MySQL数据库知识自主实现一个实用的系统,使得现有知识得到更好的巩固,更加熟练的操作MyEclipse工具和MySQL数据库。同时在实现中学习到更多新的知识,能更深入掌握JSP、Java语言,了解软件开发的全过程,为以后的学习与工作打下坚实的基础。
BBS(电子布告栏系统)是在网上提供交流的手段。它可以用于公告、群组讨论、社区内通信、联系、在线聊天、找工作等,利用网络实时、便捷的特点来方便人们的交流、联系和娱乐。
1。2 国内外研究动态
进入二十一世纪,计算机技术迅速向着网络化、集成化方向发展。传统的单机版应用软件正在逐渐退出舞台,取而代之的是支持网络、支持多种数据信息(多媒体)的新一代网络版应用软件,而目前网络版软件中似乎存在着两种不同的趋势,一种是称为客户端——服务器的C/S结构应用系统,这类软件具有结构严谨,运行效率高,服务器端压力小,安全性好等优点,被广泛运用于局域网中。而另一种,也是本毕业设计所采用的,是称为浏览器--服务器的B/S结构应用系统,它的特点是在客户端直接采用了功能强大的浏览器软件作为界面,其优点在于软件开发效率高,客户端不受操作平台的限制、也不受地域的限制,网络传输量少,即适用于局域网,更适用于Internet,而且投资小、见效快,用户可以不必进行服务
器方面的投资,而是去租用,甚至是免费使用ISP的服务器资源,因而受到越来越多中小型单位的青睐。
Internet起源于20世纪60年代末、70年代初,当时,美国国防部为了将充斥于军事基地内各种厂商的电脑主机互连,让它们可以进行数据交换以便研究工作顺利进行,于是成立了ARPA网络计划.ARPA计划尝试建设一个网络系统,它可将各种不同厂商的电脑连接起来。随着这个计划的成功,各学术单位,研究机构也纷纷与ARPA计划所建立的ARPANet连接。到了20世纪80年代,Internet这个名词因势产生,它代表着这十年来所构建涵盖全球各地的网络系统.从1990年起,商业使用的Internet在美国急速地扩大,而Internet也从原来属于少数人使用的网络系统转变为普通百姓也能够使用的网络系统.
最初的Internet资源服务都还停留在文本模式,1989年,量子物理实验室(CERN)下的一个研究小组着手开发一种全新的Internet服务,它可以在网络上传送图片、文本、影像、声音等多媒体数据。于是由Tim Berners Lee领导的小组开发出了一种主从、分布式的网络服务系统,这就是WWW(World Wide Web),俗称“万维网”。
所谓WWW其实就是连上Web服务器访问资源,取得的内容就是所谓的“主页”(HomePage)。进入的网页通常不会只有一页,而是整个网站的内容。
“网站”是一种呈现在网络上的新兴媒体,通过Internet已经成为一个实时的,多媒体的信息传播渠道.它的载体主要是电脑,范围覆盖全球各地,没有国界,不分人种,时时刻刻地提供服务。目前,人们渐渐开始把网站称之为广播、电视、报刊以外的第四新闻媒体,以“共享、公平、公正、创新、国际化、团队精神”为特征的网络文明也已逐渐成为这个时代的标志,人们越来越习惯于通过Internet网络获取信息,通过Internet在网站上发表自己对社会对生活的理解和建议.
随着网络的普及,论坛的内容越来越丰富,论坛也由此深受广大网民的喜爱,因此商业网站对论坛也重视起来,提供与网民交流的平台,同时在线技术支持也在论坛中开展起来。
1.3 本文的工作
BBS系统就是提供给注册用户一个平台,会员用户可以通过Internet接入,登录论坛,在这个平台上发表文章、阅读文章、回复文章等等。
此类系统通常有以下四种类型的操作用户:匿名用户、普通用户、版主、管理员、超级管理员.每类用户有其不同的操作集,系统通常提供一个统一的登录页面,此页面应能自动识别不同级别的用户,并提供不同的操作界面。与之相应,此类系统通常应具有以下功能:用户注册、用户登录、发表文章、阅读文章、回复文
章、分页查找、主题查找、作者查找、个人资料维护、找回密码、版面管理、版主管理、用户管理、友情链接管理等等,所有操作都可以由用户在客户端浏览器中完成,而服务器端程序会按用户的要求来完成对系统数据的操作,并将结果传给Web服务器,再由Web服务器处理成HTML文件后发送到客户端浏览器.这就是所谓的B/S结构应用系统,B/S结构即Browser/Server(浏览器/服务器)结构,是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。
C/S结构,即Client/Server(客户机/服务器)结构,是大家熟知的软件系统体系结构,通过将任务合理分配到Client端和Server端,降低了系统的通讯开销,可以充分利用两端硬件环境的优势.早期的软件系统多以此作为首选设计标准. B/S结构下,用户界面完全通过WWW浏览器实现,一部分事务逻辑在前端实现,
但是主要事务逻辑在服务器端实现,形成所谓N-Tier结构.B/S结构,主要是利用了不断成熟的WWW浏览器技术,结合浏览器的多种Script语言(VBScript、JavaScript)和ActiveX技术,用通用浏览器就实现了原来需要复杂专用软件才能实现的强大功能,并节约了开发成本,是一种全新的软件系统构造技术。随着Windows将浏览器技术植入操作系统内部,这种结构更成为当今应用软件的首选体系结构。
结合BBS论坛系统实际需要,本BBS系统采用B/S结构。论文设计开发的系统为通用BBS系统,系统应该具备较大的可伸缩性,应该能适应最基本应用最广泛的Web平台。另外,通用系统应该具备较大的可扩展性,而Java 语言是面向对象的,面向对象编程注重程序的可扩展性,且Java 语言是跨平台执行的,JSP相对其他网页编程语言有更多的优点,所以本系统采用Java+JSP作为编程语言。
2 系统分析
2。1 可行性分析
商业软件是根据客户的根本目的和需要而设计和开发的,可行性是开发的系统具有使用价值和生命力的保证。
2.1。1 社会可行性
当前社会是一个网络化的社会,网络就在人们周围,人们从网络上获取并发布信息,而本系统正是应这一需求而产生,为企业,个人发布,获取有价值的信息提供场所.所以本系统具有社会可行性。
2.1。2 技术可行性
本系统采用三层结构,用MySQL数据库作为后台数据库,安装和使用简单易学,方便操作;前台页面采用JSP动态页面,JSP相比ASP、PHP都有很大的优势;控制层采用Struts+Spring框架,Struts和Spring都是Java Web开发中使用的比较热门的技术.服务器采用Tomcat服务器,它是一个开源软件。开发人员在学习了这些语言或工具之后,有能力开发本系统。
2.1.3 经济可行性
经济可行性是指软件所带来的经济效益与开发设计所需要的投资费用相比较是否适当,软件是否会给使用者带来经济效益。首先随着计算机软件和硬件技术的飞速发展,计算机软、硬件价格不断下降,设计本系统所投入的资金下降。与使用本系统为企业发布、获取信息所节省的价值相比,应用本系统带来的收益较大,经济效益可观,所以在经济上是可行的。
2.2 需求分析
需求分析虽处于软件开发过程的开始阶段,但它对于整个软件开发过程以及软件产品质量是至关重要的。随着软件系统复杂性的提高及规模的扩大,需求分析在软件开发中所处的地位愈加突出[1]。所谓需求,是指用户对目标软件系统在功能、行为、性能设计约束等方面的要求.在需求分析工作中,系统分析人员对用户的需
求进行调
查和分析,确定现有环境的特征,正确定义目标软件的特征 。因此,需求分析工作是对应用环境及其问题进行理解和分析,为问题涉及的信息、功能及系统行为建立模型,将用户需求精确化.
通用论坛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]。
(1) Spring 概述
Spring 是一个开源框架,是为了解决企业应用程序开发复杂性而创建的.框架的主要优势之一就是其分层架构,分层架构允许使用者选择使用哪一个组件,同时为J2EE应用程序开发提供集成的框架。
Spring提供了一种轻量级的解决方案,用于建立“快装式企业应用”.在此基础上,Spring还提供了包括声明式事务管理,RMI或Web Service 远程访问业务逻辑,以及可以多种方法进行的持久化数据库的解决方案。另外,Spring 还有一个全功能的MVC柜架,并能透明地把AOP集成到用户的软件中去[12]。
2.4 系统的数据流图
数据流图即DFD(Data Flow Diagram)图。是用于分析系统数据流程的图形,意在让用户理解系统的功能、输入、输出和数据存储等。BBS系统的第一层数据流图如图2—1所示,描述系统由哪几部分组成,各部分之间有什么联系[13]。
删除黑名单 注册 管理用户 管理版块 发表主题 发表回复 发送短信 登录 注销登录 增加好友 删除好友 增加黑名单 管理主题 管理用户组 管理版块权限 管理用户组权限 BBS 系统 管 理 员 用 户 图2-1 BBS系统的数据流图(第一层) 2.5 用例图
用例是系统、子系统或类和外部的参与者(actor)交互的动作序列的说明,包括可选的动作序列和会出现异常的动作序列。
用例是代表系统中各个项目相关人员之间就系统的行为所达成的契约.在UML
中,用例用一个椭圆表示,用例名往往用动宾结构或主谓结构命名[14]。参与者是指用户在系统中的扮演的角色,其图形化表示是一个小人。
BBS系统的用例有用户注册、登录、注销、浏览主题、发表主题、发表回复、查看短信、发送短信息、删除短信;管理员管理用户、管理主题、管理用户组、版块权限、管理用户组权限。用例图如图2—2所示。
修改个人资料 图2-2 BBS系统的用例图 删除黑名单 增加黑名单 删除好友 <