1、旅游论坛BBS系统设计和实现学 生 姓 名 肖雄 指 导 教 师 杨洋 专 业 计算机科学和技术 学 院 信息技术工程学院 3月8日毕业设计(论文)任务书姓名: 肖雄学院:信息技术工程学院班级:12计科专业:计算机科学和技术毕业设计(论文)题目:旅游论坛BBS系统设计和实现立题目标和意义:目标:设计首要目标是利用已经学习到MyEclipse工具和MySQL数据库知识自主实现一个实用系统,使得现有知识得到愈加好巩固,愈加熟练操作MyEclipse工具和MySQL数据库。同时在实现中学习到更多知识,能更深入掌握JSP和了解软件开发全过程,为以后学习和工作打下坚实基础。意义:BBS(电子布告栏系统)
2、是在网上提供交流手段。它能够用于公告、群组讨论、小区内通信、联络、在线聊天、找工作等,利用网络实时、便捷特点来方便大家交流、联络和娱乐。技术要求和工作计划:技术要求:本设计所做网站采取三层结构,以MySQL数据库为后台数据库,以JSP网页作为表现层实现,以Struts整合Spring进行模型控制,所以,要求开发人员熟悉数据库基础知识,通晓MySQL数据库特点和使用方法,掌握Java语言基础知识,能熟练利用JSP进行网站开发,和对Struts和Spring框架有所掌握。熟练使用MyEclipse开发工具,了解Tomcat服务器工程布署。工作计划:利用30天来学习Java语言,JSP语言,Stru
3、ts及Spring框架,MySQL数据库,同时进行需求分析。利用大约一个半月时间进行系统设计和编码。利用十天左右进行系统调试和测试。利用半个月时间完成论文编写和审定。时间安排:.7.1-.12.1 学习Java语言,JSP语言,Struts及Spring框架,MySQL数据库。.12.5-.2.1 进行系统概要设计,具体设计,代码编写。.2.2-.2.15 进行系统调试和测试。.2.15-.3.11 论文编写和审定。摘要通用论坛BBS系统是根据MVC模式进行设计实现,采取Tomcat作为后台服务器,以MySQL数据库作为数据服务器,使用Struts和Spring进行逻辑控制,表现层用JSP页面
4、显示,用于在网络上为网民提供一个信息公布、获取场所。实现了查看、发表、删除帖子功效,论坛帖子版块控制,注册用户能够修改自己个人信息、增加好友和黑名单和用户之间发送短信息,管理员能够对用户、帖子,版块、用户组、版块权限和用户组权限进行管理。论文从问题提出、基础设计思想、数据流向到具体设计过程全部做出了具体叙述。关键词:BBS;论坛;专题;回复1绪论1.1课题研究目标及意义设计首要目标是利用已经学习到MyEclipse工具和MySQL数据库知识自主实现一个实用系统,使得现有知识得到愈加好巩固,愈加熟练操作MyEclipse工具和MySQL数据库。同时在实现中学习到更多新知识,能更深入掌握JSP、J
5、ava语言,了解软件开发全过程,为以后学习和工作打下坚实基础。BBS(电子布告栏系统)是在网上提供交流手段。它能够用于公告、群组讨论、小区内通信、联络、在线聊天、找工作等,利用网络实时、便捷特点来方便大家交流、联络和娱乐。1.2中国外研究动态进入二十一世纪,计算机技术快速向着网络化、集成化方向发展。传统单机版应用软件正在逐步退出舞台,取而代之是支持网络、支持多个数据信息(多媒体)新一代网络版应用软件,而现在网络版软件中似乎存在着两种不一样趋势,一个是称为用户端服务器C/S结构应用系统,这类软件含有结构严谨,运行效率高,服务器端压力小,安全性好等优点,被广泛利用于局域网中。而另一个,也是本毕业设
6、计所采取,是称为浏览器服务器B/S结构应用系统,它特点是在用户端直接采取了功效强大浏览器软件作为界面,其优点在于软件开发效率高,用户端不受操作平台限制、也不受地域限制,网络传输量少,即适适用于局域网,更适适用于Internet,而且投资小、见效快,用户能够无须进行服务器方面投资,而是去租用,甚至是无偿使用ISP服务器资源,所以受到越来越多中小型单位青睐。Internet起源于20世纪60年代末、70年代初,当初,美国国防部为了将充斥于军事基地内多种厂商电脑主机互连,让它们能够进行数据交换方便研究工作顺利进行,于是成立了ARPA网络计划。ARPA计划尝试建设一个网络系统,它可将多种不一样厂商电脑
7、连接起来。伴随这个计划成功,各学术单位,研究机构也纷纷和ARPA计划所建立ARPANet连接。到了20世纪80年代,Internet这个名词因势产生,它代表着这十年来所构建涵盖全球各地网络系统。从1990年起,商业使用Internet在美国急速地扩大,而Internet也从原来属于少数人使用网络系统转变为一般百姓也能够使用网络系统。最初Internet资源服务全部还停留在文本模式,1989年,量子物理试验室(CERN)下一个研究小组着手开发一个全新Internet服务,它能够在网络上传送图片、文本、影像、声音等多媒体数据。于是由Tim Berners Lee领导小组开发出了一个主从、分布式网络
8、服务系统,这就是WWW(World Wide Web),俗称“万维网”。所谓WWW其实就是连上Web服务器访问资源,取得内容就是所谓“主页”(HomePage)。进入网页通常不会只有一页,而是整个网站内容。“网站”是一个展现在网络上新兴媒体,经过Internet已经成为一个实时,多媒体信息传输渠道。它载体关键是电脑,范围覆盖全球各地,没有国界,不分人种,时时刻刻地提供服务。现在,大家逐步开始把网站称之为广播、电视、报刊以外第四新闻媒体,以“共享、公平、公正、创新、国际化、团体精神”为特征网络文明也已逐步成为这个时代标志,大家越来越习惯于经过Internet网络获取信息,经过Internet在网
9、站上发表自己对社会对生活了解和提议。伴随网络普及,论坛内容越来越丰富,论坛也由此深受广大网民喜爱,所以商业网站对论坛也重视起来,提供和网民交流平台,同时在线技术支持也在论坛中开展起来。1.3本文工作BBS系统就是提供给注册用户一个平台,会员用户能够经过Internet接入,登录论坛,在这个平台上发表文章、阅读文章、回复文章等等。这类系统通常有以下四种类型操作用户:匿名用户、一般用户、版主、管理员、超级管理员。每类用户有其不一样操作集,系统通常提供一个统一登录页面,此页面应能自动识别不一样等级用户,并提供不一样操作界面。和之对应,这类系统通常应含有以下功效:用户注册、用户登录、发表文章、阅读文章
10、、回复文章、分页查找、专题查找、作者查找、个人资料维护、找回密码、版面管理、版主管理、用户管理、友谊链接管理等等,全部操作全部能够由用户在用户端浏览器中完成,而服务器端程序会按用户要求来完成对系统数据操作,并将结果传给Web服务器,再由Web服务器处理成HTML文件后发送到用户端浏览器。这就是所谓B/S结构应用系统,B/S结构即Browser/Server(浏览器/服务器)结构,是伴随Internet技术兴起,对C/S结构一个改变或改善结构。C/S结构,即Client/Server(用户机/服务器)结构,是大家熟知软件系统体系结构,经过将任务合理分配到Client端和Server端,降低了系统
11、通讯开销,能够充足利用两端硬件环境优势。早期软件系统多以此作为首选设计标准。B/S结构下,用户界面完全经过WWW浏览器实现,一部分事务逻辑在前端实现,不过关键事务逻辑在服务器端实现,形成所谓N-Tier结构。B/S结构,关键是利用了不停成熟WWW浏览器技术,结合浏览器多个Script语言(VBScript、JavaScript)和ActiveX技术,用通用浏览器就实现了原来需要复杂专用软件才能实现强大功效,并节省了开发成本,是一个全新软件系统结构技术。伴随Windows将浏览器技术植入操作系统内部,这种结构更成为当今应用软件首选体系结构。结合BBS论坛系统实际需要,本BBS系统采取B/S结构。
12、论文设计开发系统为通用BBS系统,系统应该含有较大可伸缩性,应该能适应最基础应用最广泛Web平台。另外,通用系统应该含有较大可扩展性,而Java 语言是面向对象,面向对象编程重视程序可扩展性,且Java 语言是跨平台实施,JSP相对其它网页编程语言有更多优点,所以本系统采取Java+JSP作为编程语言。2系统分析2.1可行性分析商业软件是依据用户根本目标和需要而设计和开发,可行性是开发系统含有使用价值和生命力确保。2.1.1社会可行性目前社会是一个网络化社会,网络就在大家周围,大家从网络上获取并公布信息,而本系统正是应这一需求而产生,为企业,个人公布,获取有价值信息提供场所。所以本系统含有社会
13、可行性。2.1.2技术可行性本系统采取三层结构,用MySQL数据库作为后台数据库,安装和使用简单易学,方便操作;前台页面采取JSP动态页面,JSP相比ASP、PHP全部有很大优势;控制层采取Struts+Spring框架,Struts和Spring全部是Java Web开发中使用比较热门技术。服务器采取Tomcat服务器,它是一个开源软件。开发人员在学习了这些语言或工具以后,有能力开发本系统。2.1.3经济可行性经济可行性是指软件所带来经济效益和开发设计所需要投资费用相比较是否合适,软件是否会给使用者带来经济效益。首先伴随计算机软件和硬件技术飞速发展,计算机软、硬件价格不停下降,设计本系统所投
14、入资金下降。和使用本系统为企业公布、获取信息所节省价值相比,应用本系统带来收益较大,经济效益可观,所以在经济上是可行。2.2需求分析需求分析虽处于软件开发过程开始阶段,但它对于整个软件开发过程和软件产品质量是至关关键。伴随软件系统复杂性提升及规模扩大,需求分析在软件开发中所处地位愈加突出1。所谓需求,是指用户对目标软件系统在功效、行为、性能设计约束等方面要求。在需求分析工作中,系统分析人员对用户需求进行调查和分析,确定现有环境特征,正确定义目标软件特征 。所以,需求分析工作是对应用环境及其问题进行了解和分析,为问题包含信息、功效及系统行为建立模型,将用户需求正确化。通用论坛BBS系统设计实现以
15、下功效:用户中心:包含用户注册、用户登录、用户注销、增加好友、删除好友、增加黑名单、删除黑名单、发送短信息、查看短信息、删除短信息、修改个人资料等功效。专题中心:包含专题分类(论坛版块)、查看专题、查看回复、发表专题、发表回复、对专题或回复进行搜索等功效。管理员中心:管理员对论坛进行部分基础维护,包含对帖子删除、置顶、设为精华帖,对用户删除、授权,对版块权限管理,对用户组及用户组权限管理等2。统计功效:对论坛相关参数进行统计。2.2.1用户中心当用户进入网站首页时,会有一个登录窗口,已经注册会员用户能够在这个窗口中登录。没有登录用户只能查看专题,不能发表专题或评论。登录以后,用户就能够发表专题
16、或回复;查看或修改自己个人信息,包含修改用户头像,能够选择自己喜爱图片作为自己头像;能够给好友发送短信息,查看或删除自己收到信息;用户能够在好友和黑名单里设置自己关系网,让用户和自己好友交流愈加方便,也可在让用户不接收不愿意见到人信息。没有注册用户能够在登录窗口中点击注册超链接进入新用户注册页面,输入用户名、密码、密码提醒问题、提醒问题答案及安全邮箱,即可注册成为网站会员。密码提醒问题是为找密码设置,当用户忘记密码或密码丢失后能够经过输入提醒问题答案来找回密码,假如用户回复正确,系统会自动发送一封邮件到用户安全邮箱里,提醒用户修改密码。2.2.2专题中心系统有版块,专题和回复,其中版块是对专题
17、分类,回复是在专题下发表,是用户对专题评论。当用户进入首页时会显示论坛全部版块及每个版块下专题数,帖子总数,最终发表专题用户、时间。进入版块以后显示该版块下专题及该专题下回复数,点击数,最终发表评论用户、时间。点击专题名进入专题页面,该页面有专题内容,发表该专题用户用户名、积分、用户组、注册时间,该专题下回复及发表回复用户个人信息。已登录用户能够在版块下发表专题,在专题下发表回复,还能够按关键字对专题或回复进行搜索,并支持模糊查询。匿名用户只能查看专题内容,对专题或回复进行搜索,但不能发表专题,不能发表回复。2.2.3管理员功效管理员作为一个特殊用户,除了拥有一般用户拥有功效外,还能够修改用户
18、权限,管理用户组,管理版面,设置版主,控制用户组权限。版主作为权限最少管理者只能对自己所管理版面专题进行删除、置顶,设置精华贴,屏蔽用户回复,编辑版面说明等。2.2.4统计功效显示论坛目前注册总人数、目前帖子总数、论坛点击总数、目前在线人数,会员人数和游客人数。用户表现积分排行,调动用户主动性。用户每次上线、发表专题或回复全部会得到对应积分,并以此来表现用户活跃程度。系统会对专题按点击数进行排序,对版面按专题数进行排序,帖子点击统计,方便了解热点话题。本日版面排行榜,本日作者排行榜。2.3开发工具及相关技术介绍本系统采取工含有JDK 1.5、Tomcat 5.0、MyEclipse 5.5、M
19、ySQL5.0,使用技术有Java、Servlet、JSP、JavaScript、XML、Struts、Spring。2.3.1相关工具介绍(1) JDK 1.5.0JDK是Sun 企业Java应用程序和组件开发环境,是编译和测试工具,也是提供java程序Java虚拟机平台,是调试和运行JSP所不可缺乏工具。本系统采取JDK1.5.0版本3。(2) Tomcat 5.0Tomcat是开源servlet和JSP容器(Sun官方推荐容器),它是Jakarta项目中一个关键组成,由Apache、Sun和其它部分企业及个人开发。Tomcat内部实现了Servlet和JSP引擎,而且扩展了部分应用服务器
20、功效,比如JNDI、数据库连接池、用户事务处理等。目Tomcat被广泛地应用于中小规模Java web应用中4。(3) Eclipse/MyEclipse 5.5Eclipse 是基于Java 开放源代码可扩展开发平台,Eclipse平台提供软件开发工具集成服务,全部开发工具(包含JDE和PDE)全部是用插件形式提供。这种设计使得Eclipse含有开放式可扩充结构5。MyEclipse是在Eclipse集成开发环境中提供Web应用程序开发插件,在现在软件开发Java领域中,MyEclipse是一个使用很广泛工具。MyEclipse是Eclipse软件一个插件,Eclipse软件是无偿,但MyE
21、clipse不是一个完全无偿产品,需要购置。(4) MySQL 5.0MySQL数据库是一个较小型数据库系统,同时是一个多用户、多线程强壮SQL数据库服务器,并提供无偿安装软件6。因为它对平台环境要求不高,安装方便,适合中小型系统开发。2.3.2相关技术概述(1) Java语言概述Java编程语言是一个通用、并发、基于类且面向对象语言。Java编程语言和C和C+相关,不过在组织方法上有差异,Java含有C和C+遗漏很多优点,同时兼有其它语言包含部分思想。它意在成为一个生产语言,而不是一个研究语言,而且正是如此7。(2) Servlet技术概述Servlet技术关键是为了使用Web上HTTP协议
22、而设计。Servlet是在Web服务器上运行程序,Java Servlet能够用于处理用户请求或生成动态Web网页。Tomcat是支持Java Servlet和JSPWeb服务器8。(3) JSP技术概述JSP (Java Server Pages)是由Sun 企业提倡,很多企业参与,共同建立人一个动态网页技术标准,JSP技术是在Servlet技术基础上发展起来。它正在飞速发展中,现在已经成为Java服务器编程关键组成部分。(4) JavaScript技术概述JavaScript是一个基于对象(Object)和事件驱动(Event Driver)并含有安全性能脚本语言,它所能提供功效很强大。J
23、avaScript是一个简练面向对象描述语言,是专门用来开发Internet用户端和服务器端应用程序,它能够被轻易嵌入到HTML文件中,使用JavaScript浏览器以回应使用者需求事件而不用经过网络往返传资料,这么,使用者资料就能够直接被用户端应用程序所处理,它出现填补了HTML语言缺点,它是Java和HTML折衷选择9(5) XML技术概述从1998年2月W3C正式推出XML(eXtensible Markup Language缩写,意为可扩展标识语言)后短短三年间,XML以惊人速度在广大设计人员中传输开来。伴随Internet飞速发展,HTML开始对更多网络设计要求显露出疲态。XML也就
24、是在这种大环境下孕育而生10。(6) Struts 概述Struts使用Model2体系结构。 ActionServlet 负责控制步骤。另外一个Struts类,Action,负责存取业务逻辑类。当ActionServlet类从窗口中取得一个请求时,它使用请求URI(也称为路径)来决定是哪一个Action来处理该请求。一个Action能够检验输入正当性、经过业务逻辑层来读取数据库或其它数据服务中信息。要校验输入正当性或是使用该输入来修改数据库中内容,Action需要用户提交给它处理数据。为了避免每一个Action全部要处理从请求中输入数据操作,Struts将这些输入数据绑定到JavaBean中
25、。每一个这么Bean全部是Struts中ActionForm类子类。ActionServlet经过查看请求路径就能够决定哪一个ActionForm用来包含输入数据。这些ActionFormod 类全部应该是org.apache.struts.action.ActionForm子类。每一个HTTP请求全部必需有一个HTTP响应。通常而言,Struts自已并不生成响应,而是将请求转发到其它资源上去比如JSP页面。Struts提供一个名为ActionForward类来将逻辑名保留到每个面路径。当业务逻辑部分已经实施完成后,Action会选择一个ActionForward,而且将它返回给每个总控ser
26、vlet。总控Servlet 会使用在该Action Forward中存放物理路径来调用对应页面来完成HTTP响应部分。Struts将全部这些方面细节信息全部定义在ActionMapping对象中。每一个ActionMapping对象全部对应于一个指定路径。当该路径被请求时,总控servlet会获取对应ActionMapp world wide webing对象。该对象会告诉总控servlet该使用哪些Action,ActionForm和ActionForward对象。全部相关 Action,ActionForm,ActionForward和ActionMapping信息和其它配置信息全部在S
27、truts-config.xml文件中申明。ActionServlet在开启时候会读取该文件,而且创建包含全部这些配置对象数据库。在运行时刻,Struts会使用这些对象,而不是文件本身11。(1) Spring 概述Spring 是一个开源框架,是为了处理企业应用程序开发复杂性而创建。框架关键优势之一就是其分层架构,分层架构许可使用者选择使用哪一个组件,同时为J2EE应用程序开发提供集成框架。Spring提供了一个轻量级处理方案,用于建立“快装式企业应用”。在此基础上,Spring还提供了包含申明式事务管理,RMI或Web Service 远程访问业务逻辑,和能够多个方法进行持久化数据库处理方
28、案。另外,Spring 还有一个全功效MVC柜架,并能透明地把AOP集成到用户软件中去12。2.4系统数据流图数据流图即DFD(Data Flow Diagram)图。是用于分析系统数据步骤图形,意在让用户了解系统功效、输入、输出和数据存放等。BBS系统第一层数据流图图2-1所表示,描述系统由哪几部分组成,各部分之间有什么联络13。管理员用户BBS系统管理用户管理版块管理专题管理用户组登录发送短信发表回复发表专题注册图2-1 BBS系统数据流图(第一层)注销登录管理用户组权限管理版块权限增加好友删除好友增加黑名单删除黑名单2.5用例图用例是系统、子系统或类和外部参与者(actor)交互动作序列
29、说明,包含可选动作序列和会出现异常动作序列。用例是代表系统中各个项目相关人员之间就系统行为所达成契约。在UML中,用例用一个椭圆表示,用例名往往用动宾结构或主谓结构命名14。参与者是指用户在系统中饰演角色,其图形化表示是一个小人。BBS系统用例有用户注册、登录、注销、浏览专题、发表专题、发表回复、查看短信、发送短信息、删除短信;管理员管理用户、管理专题、管理用户组、版块权限、管理用户组权限。用例图图2-2所表示。注册登录注销浏览专题发表回复发表专题发送短信查看短信删除短信管理用户管理版块管理专题管理用户组管理用户组权限图2-2 BBS系统用例图管理员用户管理版块权限增加好友删除好友增加黑名单删
30、除黑名单修改个人资料3总体设计3.1功效分析后台管理模块BBS系统功效模块前台显示模块图3-1 BBS系统功效模块图BBS系统分为前台和后台两个模块。系统功效模块图图3-1所表示。前台模块使用对象包含了全部用户(管理员、用户、游客),提供功效包含注册帐号、用户登录、用户注销、浏览文章、发表新专题、回复专题、增加好友、删除好友、增加黑名单、删除黑名单、查看短信息、发送短信息、删除短信息、修改个人信息。图3-2所表示。前台显示模块发表专题发表回复删除短信息用户注销浏览专题用户登录用户注册增加黑名单修改个人信息增加好友删除好友删除黑名单发送短信息查看短信息图3-2 BBS系统前台功效模块图后台模块使
31、用对象为管理人员(版主、管理员、超级管理员),提供功效包含管理用户、管理版块、管理专题、管理用户组、功效权限管理、版块权限管理。后台功效模块图3-3所表示。后台管理模块版块管理用户管理专题管理用户组管理功效权限管理版块权限管理查询版块新增版块删除版块修改用户删除用户修改专题属性删除专题增加用户组查询用户组删除用户组新增版块权限查询功效权限删除功效权限新增功效权限查询版块权限删除版块权限图3-3 BBS后台功效模块图3.2数据库设计依据前面需求描述,本系统中能够抽象出来数据模型有:用户(user)、模块(module)、专题(topic)、回复(retopic)、好友关系(friends)、用户
32、短信息(note)、用户组(groud)、功效(function)、功效权限(group_has_function)、模块权限(modright)模块版主(user_has_module)、积分(integral)。依据需求分析,可设计以下表:(1) 用户信息表:用户ID、用户名、密码、E-mail地址、密码提醒问题、提醒问题答案、是否公开注册信息、真实姓名、性别、出生年月日、联络电话、具体地址、邮政编码、用户署名档、用户头像、QQ、注册时间、用户组、用户积分、用户登录次数、最终登录时间、发表帖子数、被推荐精华帖数、用户最终登录IP(2) 论坛模块表:模块ID、模块名、上级模块ID、模块介绍、
33、模块一天总专题数、模块专题总数、模块回复总数、模块状态(1一般模块、2会员论坛、3嘉宾论坛、4加密论坛、5关闭论坛)、是否审核(false否、true是)、加密论坛密码、模块创建时间论坛专题表:专题ID、专题名、专题内容、专题公布者、所属模块、专题状(3) 表示在审核中、1表示审核经过、2表示初稿)、访问限制积分、点击数、是否为精华帖子、是否置顶、被创建时间(4) 专题回复表:回复帖子ID、回复专题ID、回复标题、回复内容、回复者ID、回复时间、是否屏蔽(false否、true是)(5) 关系表:好友ID、用户名、申请好友用户名,好友标识(0黑名单、1好友、2未确定好友)(6) 用户短信息表:
34、短信ID、发信者、收信者、短信标题、短信内容、发信时间、发信标识(0已删除1已发送2初稿)、收信标识(0已删除、1已读,2未读)(7) 用户组表:组ID、用户组名、组描述(8) 功效表:功效ID、功效名、功效信息(9) 功效权限表:用户组ID、功效ID(10) 模块权限表:权限ID、用户组名(外键)、访问模块ID,访问权限(11) 模块版主表:用户ID、模块ID(12) 积分表:积分ID、积分、等级4具体设计和实现4.1数据库连接系统采取JSPStruts+Spring架构,数据库采取MySQL,使用Spring配置文件beans.xml连接数据库,其连接数据库配置信息以下:使用注入Dao形式
35、进行数据库操作,在Dao中实现对数据表增加、删除、查询、修改操作,Dao不进行其它逻辑操作。前台JSP页面产生请求交由对应Action进行逻辑操作,当其要对数据库进行操作时,经过WebApplicationContext 对象获取Dao,将要操作对象相关参数传给Dao即可。这就是对接口编程,使各个模块之间低耦合,有利于程序可扩展性。4.2前台显示模块前台显示模块包含用户部分功效,具体可分为用户注册、用户登录、用户注销、修改个人信息、增加好友、删除好友、增加黑名单、删除黑名单、查看短信息、发送短信息、删除短信息、查看版面、查看专题、查看回复、发表专题和发表回复等功效。因为专题是在版块下存在,所以
36、在版块下任何地方全部能够发表专题,而回复只能是针对专题进行回复,所以必需在专题下才能发表回复,也就是在专题页面下才能点击发表回复。现将部分功效说明以下:(1) 用户注册:新用户在login.jsp页面中输入用户名,密码,密码提醒问题、提醒问题答案、安全邮箱,点击提交按钮,数据提交到LoginAction.java中进行处理,在LoginAction.java中,假如用户名已经有些人使用则返回注册页面,不然提醒用户注册成功,并跳转到登录页面entry.jsp。(2) 用户登录:用户在有帐号前提下,能够在登录页面entry.jsp或主页bbs.jsp中输入用户名和密码点击登录,系统将用户名和密码提
37、交到LoginAction.java中entry()方法,将用户提交用户名和密码再转交给后台Dao进行查询,假如有这么一条统计存在则登录成功,将用户个人信息保留在浏览器端Session中,不然返回登录页面,并提醒用户名或密码错误。(3) 用户注销:已登录用户在退出网站时注销登录状态,系统将请求交给LoginAction.javaloginOut()方法处理,在loginOut()方法中修改用户最终离线时间,将修改保留到数据库中,并将浏览器端Sessionuser属性移除,系统返回主页。用户同时失去登录用户权限,以游客身份访问网站,只能浏览专题,不能发表专题,也不能发表回复。(4) 查看版面:首
38、页显示BBS版块及关键信息,点击版块名进入版块下会显示专题列表,点击专题名能够进入专题页面。首页index.jsp采取 方法将请求交给BbsAction.java处理,在BbsAction中从数据库取出全部版块信息及每个版块下最新专题信息,并将取出数据保留在JSPSession对象中,数据取出后交给bbs.jsp页面,在bbs.jsp页面中将取出结果显示出来。(5) 查看专题:当用户在主页上点击版块名时,会产生一个动作,向服务器产生一个请求,服务器将程序交给TopicAction.java处理,在TopicAction.java中取出模块下全部专题及最终发表回复作者信息并将其存入request
39、对象中,处理完以后返回到版块下专题显示页面。(6) 查看回复:用户在专题显示页面点击专题名时会产生查找专题信息动作,系统将这个动作交给ReTopicAction.java来处理,在ReTopicAction.java中请求交给后台DAO,从DAO中取出数据表中项,要取内容有该专题所在版块信息、该专题信息、该专题下回复信息,该专题和其回复作者部分信息。4.3后台管理模块管理员又可分为版主、管理员、超级管理员。版主权限最小,只能维护自己版面专题,包含删除专题、将专题置顶、设置精华帖等。管理员功效比版主功效要多,管理员能够删除用户,修改用户权限、增加用户组、删除用户组、增加版块、删除版块、查询版块、
40、删除专题、修改专题属性、新增功效权限、查询功效权限、删除功效权限、新增版块权限、查询版块权限、删除版块权限。管理员不能删除其它管理员,管理员只有超级管理员才能够设置和删除。超级管理员含有网站一切功效。现将部分功效介绍以下:管理员作为特殊用户,经过bbs.jsp或entry.jsp页面进行登录到主页,在主页上假如是管理员则显示后台管理超链接,管理员点击后台管理,进入管理界面manage.jsp,在管理页面有版块管理、专题管理、用户管理、用户组管理、用户组权限管理、版块权限管理。用户点击版块管理,系统将请求提交给ModuleAction.javamanage方法,在manage方法中取出全部版块,
41、跳转到manageModule.jsp,在这个页面将全部版块全部显示出来,管理员能够在这个页面直接点击删除链接,将所在版块ID提交到后台,在ModuleAction.javadelete方法中将版块及该版块下专题删除,同时也将该版块下专题回复全部删除。ModuleAction.java delete方法关键代码以下:public ActionForward delete(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response) / TODO Auto-gene
42、rated method stubWebApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(this.servlet.getServletContext();ModuleDao moduleDao = (ModuleDao) ctx.getBean(moduleDao);TopicDao topicDao = (TopicDao) ctx.getBean(topicDao);ReTopicDao reTopicDao = (ReTopicDao) ctx.getBean(reTopicDao)
43、;String moduleId = request.getParameter(id);String check = request.getParameterValues(id);if (moduleId != null) List listTopic = topicDao.getTopicByModId(Integer.parseInt(moduleId);if (listTopic != null & !listTopic.isEmpty() for (Topic topic : listTopic) reTopicDao.deleteReTopicsByTopicId(topic.get
44、Id();System.out.println(topic.getId()+删除回复成功);topicDao.deleteTopics(Integer.parseInt(moduleId);System.out.println(删除专题成功);if (moduleDao.deleteModule(Integer.parseInt(moduleId) quest.setAttribute(returnMessage, 删除模块成功!);request.setAttribute(returnMessage, 删除模块失败!); else if (check != null) System.out.println(check.length);for (int i = 0; i check.length; i+) if (checki != null) if (moduleDao.deleteModule(Integer.parseInt(checki) ListT