《办公自动化系统的考勤管理模块的设计与实现毕业论文.doc》由会员分享,可在线阅读,更多相关《办公自动化系统的考勤管理模块的设计与实现毕业论文.doc(54页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、本 科 毕 业 论 文(设计)院 系 软件学院 题 目 基于SSH框架的BBS系统的帖子模块的设计与实现 学生姓名 刘东华 学 号 071251083 年 级 2007级 专 业 软件工程 指导教师 职 称 论文提交日期 49南京大学软件学院本科毕业论文摘 要通过对BBS的发展过程和趋势以及现阶段国内外Web应用中动态页面技术的分析,开发一个界面简洁高效、用户体验较好和易于扩展的在线论坛系统是十分必要的,因此我们选择使用JSP和SSH框架来开发这个BBS项目。基于SSH框架的BBS系统采用MVC设计模式,利用Struts2控制业务逻辑和表现层的交互,使用Spring的IoC容器来管理Bean的
2、依赖注入,并且采用功能完善的Hibernate框架实现对象的持久化,在前台页面设计上使用了Javascript、Div+CSS、xhEditor等技术增强用户体验。本项目实现了基本的BBS在线论坛系统的常用功能,如浏览帖子、回复帖子、发布帖子、对帖子进行管理以及管理员的后台操作功能。主要分为五个模块:系统管理模块、版区管理模块、搜索模块、统计模块和帖子模块。本篇论文介绍的是帖子模块,主要是实现帖子的业务逻辑操作及相应的前台页面显示。关键词:BBS项目,SSH框架,J2EEAbstractBased on the analysis of the development and the trend
3、 of BBS and dynamic pages in Web application around the world, develop a simple, efficient and easy to expand online BBS system is very necessary, So finally we chose to use the JSP technology and SSH framework to develop this BBS project.The BBS system which based on SSH framework take the advantag
4、e of the MVC design patterns, using Struts2 to control the interaction between business logic and the presentation layer, using Springs IoC container to manage injection of the depended Bean, and using the fully functional Hibernate framework to achieve the persistence of the bean object. Javascript
5、 and Div + CSS technology are applied in the design of the front jsp pages and use xhEditor toolkit to enhance the user experience.The project implements the basic features of online bbs system, such as read posts, give a reply to a specific post, publish a new post and manage the post. This project
6、 mainly divided into five modules : system management module, section and board management module, search module, statistic module and post module. This paper is to introduce the post module, which achieves the operation of business logic for posts and the display of the corresponding front pages.Ke
7、ywords:BBS project, SSH framework, J2EE technology目 录摘 要IAbstractII目 录III第一章 概述/绪论11.1 项目背景11.2 国内外Web应用技术现状11.3 论文主要工作/组织结构2第二章 技术概述32.1J2EE技术32.1.1 JDBC32.1.2 JSP42.2SSH技术42.2.1Struts2.x52.2.2Spring2.x62.2.3Hibernate3.x72.3Div+CSS技术82.3.1Div82.3.2CSS92.4Javascript/Ajax/JQuery技术92.4.1Javascript92.4
8、.2Ajax92.4.3JQuery92.5xhEditor技术10第三章 基于SSH框架的BBS项目概述113.1项目总体目标113.2项目需求113.2.1一般性需求113.2.2功能性需求113.2.3具体功能点需求133.3项目总体设计163.3.1后台逻辑163.3.2配置文件173.3.3前台页面19第四章 基于SSH框架的BBS项目的帖子模块分析、设计与实现214.1帖子模块分析214.1.1Post子模块214.1.2Reply子模块234.1.3Announcement子模块244.2帖子模块设计244.2.1类、方法设计264.2.2数据库设计274.2.3前台页面设计28
9、4.3帖子模块实现304.3.1Action层实现314.3.2Service层实现324.3.3DAO层实现344.3.4Model层实现364.3.5数据库实现384.3.6前台页面实现394.3.7其他42第五章 总结与展望455.1总结455.2展望45参考文献46致谢47第一章 概述/绪论1.1 项目背景BBS的英文全称是“Bulletin Board System”,中文名称即“电子公告板”。 BBS最早是用来公布股市价格等类信息的,当时BBS连文件传输的功能都没有,而且只能在苹果计算机上运行。早期的BBS与一般街头和校园内的公告板性质相同,只不过是通过电脑来传播或获得消息而已。一
10、直到个人计算机开始普及之后,有些人尝试将苹果计算机上的BBS转移到个人计算机上,BBS才开始渐渐普及开来1。现在互联网正融入我们的生活,影响和改变着我们的生活。网络提供给我们的不只是一个获取信息的来源,而且还是一个可以相互交流的空间,网上论坛正是一种供人们进行交流的网络空间。它不受时间和空间的约束,论坛用户可以发表自己的观点,一起探讨某个问题。目前,在线论坛已不是新事物,许许多多的别具特色的论坛在网络上随处可见。为了改变网上现存论坛的普遍风格,追加功能,更便于管理,于是开发一套界面友好美观,易于使用的论坛系统。1.2 国内外Web应用技术现状作为一种Web应用的BBS系统,传统的静态页面已远远
11、不能满足业务需求,而动态页面正是开发这类系统的关键技术,目前国内外开发最常用的四种动态网页语言是PHP(Personal Home Page,有的地方也递归缩写为“PHP: Hypertext Preprocessor”,超文本预处理器)、ASP(Active Server Pages)、ASP.NET和JSP(Java Server Page)。PHP是一种跨平台的服务器端的嵌入式的脚本语言,可以在Windows、UNIX、Linux的web服务器上执行,支持IIS和Apache等一般的Web服务器。它使用很多C、Java、Perl语言的语法,使Web开发者可以迅速写出动态页面,支持目前绝大
12、多数数据库,PHP常与MySQL组合构建中小型Web应用系统。PHP是开源的,你可以不受限制地获得源码,然后根据自己具体项目的需要加入自己的特色功能或者修改、删除已有的功能。微软开发的ASP简单易学,但是只能在Windows平台上运行,通常运行在微软的IIS(Internet Information Server)应用服务器上,ASP本身功能很有限,必须通过COM组件或ActiveX Server Components(ActiveX 服务器组件)来扩充功能,但开发这些组件复杂困难,技术要求较高。ASP.NET同样是微软的产品,它是针对ASP进行的完全重写,是基于微软的.NET平台,解决了传统
13、ASP运行相对PHP、JSP速度较慢的问题,是用于构建Web应用程序的一个完整框架,可选择的编程语言灵活(如VB、C#等或者混合编程),并且由于.NET平台,这个框架支持真正的面向对象编程(OOP)。JSP是由SUN(现已被Oracle收购)公司倡导,许多公司参与一起建立的一种动态网页技术标准,它同PHP、ASP一样也是在HTML中插入Java程序段和JSP标记从而形成JSP文件,编译成字节码然后由服务器解释执行,除第一次访问时要求把JSP文件编译成字节码文件速度较慢外,以后访问都很快。JSP是基于Servlet,Servlet是纯Java代码,可以应用Java的优良面向对象编程特性以及Jav
14、a众多的类库,但通常编写Servlet繁琐,且表示与逻辑控制耦合在一起,不利于开发和维护,JSP正是为了简化Servlet开发而出现的,运行时也是首先转换成Servlet,然后编译成字节码文件解释执行。目前国内PHP、ASP应用较为广泛,而JSP作为一种较新的技术,国内采用的较少。但在国外,JSP已经是比较流行的一种技术,尤其是电子商务类的网站,多采用JSP。JSP是基于平台和服务器的相互独立的,JSP标签的可扩展性和JSP快平台组件的重要性使JSP为Web数据库应用提出更具竞争力的解决方案2 3。1.3 论文主要工作/组织结构本论文主要对我们小组完成的这个项目进行了整体介绍,并且详细的阐述了
15、我自己模块的实现。论文共分为五章。第一章概述和绪论主要介绍了项目的背景知识、目前国内外针对这类Web项目的实现方式和优缺点分析比较以及论文的主要工作和组织结构。第二章技术概述主要对这类项目中常用的技术做概要性的介绍,使读者对此类项目的实现技术有大致的了解,便于理解后续内容。第三章主要介绍了我们小组完成的这个项目的整体情况,从项目的总体目标、项目需求、项目的总体设计三个方面进行了阐述,让读者对项目的整体业务流程有清晰的认识。第四章主要介绍了我自己模块的完成情况,从模块分析、设计、实现三个层面对我自己完成的工作进行详细、全面的说明。第五章总结和展望主要阐述了从这次毕业设计中我的收获和这类项目的预期
16、发展趋势。最后就是参考文献和致谢。第二章 技术概述2.1 J2EE技术J2EE即Java2平台企业版(Java 2 Platform,Enterprise Edition)是由一整套服务(Services)、应用程序接口(APIs)和协议构成,它对开发基于Web的多层应用提供了功能支持。其体系结构如图2.1所示,主要包括13种技术规范:JDBC(Java Database Connectivity)、JNDI(Java Name and Directory Interface)、EJB(Enterprise JavaBean)、RMI(Remote Method Invoke)、Java ID
17、L/CORBA、JSP(Java Server Pages)、Java Servlet、XML(Extensible Markup Language)、JMS(Java Message Service)、JTA(Java Transaction Architecture)、JavaMail、JAF(JavaBeans Activation Framework)4图2.1 J2EE体系结构图在我们小组的项目中,用到了JDBC、JSP技术。下面分别对着两种技术进行概述。2.1.1 JDBCJDBC API为访问不同的数据库提供了一种统一的途径,像ODBC一样,JDBC对开发者屏蔽了一些细节问题,另
18、外,JDBC对数据库的访问也具有平台无关性。在数据库访问方式上,我们没有直接使用JDBC连接数据库的方式操作数据库,而是使用hibernate的ORM映射方式来间接使用JDBC操作数据库,具体技术细节详见下文所述。2.1.2 JSPJSP页面由HTML代码和嵌入其中的Java代码所组成。服务器在页面被客户端所请求以后对这些Java代码进行处理,然后将生成的HTML页面返回给客户端的浏览器。由于项目的表现层使用的Struts2,可用的表现层组件可以有多种选择,如JSP、Velocity和FreeMarker,最终我们使用JSP作为项目的表示层,搭配上静态的HTML页面组成了项目的所有表示层页面。
19、2.2 SSH技术目前的SSH根据Struts的不同主要分为两种组合,一种是Struts1.x+Spring2.x+Hibernate3.x,另一种是Struts2.x+Spring2.x+Hibernate3.x。由于Struts1.x与Struts2.x有着本质的区别,因此这两种SSH技术在Web应用中表现层上的实现有着很大的不同。Struts1.x是世界上第一个发布的MVC框架,对于Web应用的MVC模式有很深远的意义。该框架以ActionServlet作为核心控制器,整个应用由客户端请求驱动。当客户端向Web应用发送请求时,请求将被Struts1.x的核心控制器ActionServle
20、t拦截,ActionServlet根据请求决定是否需要调用业务逻辑控制器处理用户请求(实际上,业务逻辑控制器还是控制器,它只是负责调用模型来处理用户请求),当用户请求处理完成后,其处理结果通过JSP呈现给用户。对于整个Struts1.x框架而言,控制器就是它的核心,Struts1.x的控制器由两个部分组成:核心控制器和业务逻辑控制器。其中核心控制器就是ActionServlet,由Struts1.x框架提供;业务逻辑控制就是用户自定义的Action,由应用开发者提供。Struts1.x的运行流程如图2.2所示。图2.2 Struts1.x运行流程图而Struts2.x则是以WebWork的优秀
21、设计思想为核心,吸收了Struts1.x的部分优点,同时克服了Struts1.x的很多缺点的MVC框架。Struts2 框架由3个部分组成:核心控制器FilterDispatcher、业务控制器(用户实现Action类的实例)和用户实现的业务逻辑组件。Struts2.x。在Action实现类方面,Struts1.x要求Action类继承一个抽象基类,是面向抽象类编程而不是面向接口编程;Struts2.x Action类可以实现一个Action接口,也可以实现其他接口,使可选和定制的服务成为可能,Struts 2提供一个ActionSupport基类去实现常用的接口,即使Action接口不是必须
22、实现的,只有一个包含execute方法的POJO类都可以用作Struts2.x的Action。因此Struts1.x的Action与Servlet的API有较高耦合性,而Struts2.x的Action与Servlet API低耦合(几乎没有耦合),因此便于开发和测试。Struts2.x运行流程如图2.3所示5。图2.3 Struts2.x运行流程图由于我们小组是使用Struts2.2+Spring2.5+Hibernate3.2开发这个BBS系统的,所以下面分别对Struts2.x、Spring2.x、Hibernate3.x做一个简单的概述。2.2.1 Struts2.xStruts 2是
23、Struts的下一代产品。是在 struts 和WebWork的技术基础上进行了合并,全新的Struts 2框架。其全新的Struts 2的体系结构与Struts 1的体系结构的差别巨大。Struts 2以WebWork为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与Servlet API完全脱离开,所以Struts 2可以理解为WebWork的更新产品。Struts2框架的大概处理流程如下:1. 加载类(FilterDispatcher)2. 读取配置(struts配置文件中的Action)3. 派发请求(客户端发送请求)4. 调用Action(FilterDi
24、spatcher从struts配置文件中读取与之相对应的Action )5. 启用拦截器(WebWork拦截器链自动对请求应用通用功能,如验证)6. 处理业务(回调Action的execute()方法)7. 返回响应(通过execute方法将信息返回到FilterDispatcher)8. 查找响应(FilterDispatcher根据配置查找响应的是什么信息如:SUCCESS、ERROER,将跳转到哪个jsp页面)9. 响应用户(jsp-客户浏览器端显示)2.2.2 Spring2.xSpring是一个开源框架,它由Rod Johnson创建。它是为了解决企业应用开发的复杂性而创建的。Spr
25、ing使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益6。Spring作为一个轻量级的MVC框架,具有很多特性,如图2.4所示。图2.4 Spring框架概述Core 封装包是框架的最基础部分,提供IoC和依赖注入特性。这里的基础概念是BeanFactory,它提供对Factory模式的经典实现来消除对程序性单例模式的需要,并真正地允许你从程序逻辑中分离出依赖关系和配置。Context(上下文) 封装包构筑于Core封装包的坚固基础上:它提供了用一种框架
26、风格的方式来访问对象,有些像JNDI注册表。Context封装包继承了beans包的功能,还增加了国际化(I18N)(用于规范resource bundle),事件传播,资源装载,以及透明创建上下文,例如通过servlet容器。DAO 提供了JDBC的抽象层,它可消除冗长的JDBC编码和解析数据库厂商特有的错误代码。 并且,JDBC 封装包还提供了一种比编程性更好的声明性事务管理方法,不仅仅是实现了特定接口,而且对所有的POJOs(plain old Java objects)都适用。 ORM 封装包提供了常用的“对象/关系”映射APIs的集成层。 其中包括JPA、JDO、Hibernate
27、和 iBatis 。利用ORM封装包,可以混合使用所有Spring提供的特性进行“对象/关系”映射,如前边提到的简单声明性事务管理。Spring的 AOP 封装包提供了符合 AOP Alliance规范的面向方面的编程(aspect-oriented programming)实现,让你可以定义,例如方法拦截器(method-interceptors)和切点(pointcuts),从逻辑上讲,从而减弱代码的功能耦合,清晰的被分离开。而且,利用source-level的元数据功能,还可以将各种行为信息合并到你的代码中,这有点象.Net的attribute的概念。Spring中的 Web 包提供了基
28、础的针对Web开发的集成特性,例如多方文件上传,利用Servlet listeners进行IoC容器初始化和针对Web的application context。当与WebWork或Struts一起使用Spring时,这个包使Spring可与其他框架结合。Spring中的 MVC 封装包提供了Web应用的Model-View-Controller(MVC)实现。Spring的MVC框架并不是仅仅提供一种传统的实现,它提供了一种清晰的分离模型,在领域模型代码和web form之间。并且,还可以借助Spring框架的其他特性。2.2.3 Hibernate3.xHibernate是一个开放源代码的对
29、象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任7。Hibernate的核心接口一共有5个,分别为:Session、SessionFactory、Transaction、Query和Configuration。这5个核心接口在任何开发中都会用到。通过这些接口,不仅可以对持久化对象进行存取,还
30、能够进行事务控制。如图2.5所示。图2.5 Hibernate overviewSession接口负责执行被持久化对象的CRUD操作(CRUD的任务是完成与数据库的交流,包含了很多常见的SQL语句。)。但需要注意的是Session对象是非线程安全的。同时,Hibernate的session不同于JSP应用中的HttpSession。这里当使用session这个术语时,其实指的是Hibernate中的session,而以后会将HttpSession对象称为用户session。SessionFactory接口负责初始化Hibernate。它充当数据存储源的代理,并负责创建Session对象。这里用
31、到了工厂模式。需要注意的是SessionFactory并不是轻量级的,因为一般情况下,一个项目通常只需要一个SessionFactory就够,当需要操作多个数据库时,可以为每个数据库指定一个SessionFactory。Configuration接口负责配置并启动Hibernate,创建SessionFactory对象。在Hibernate的启动的过程中,Configuration类的实例首先定位映射文档位置、读取配置,然后创建SessionFactory对象。Transaction接口负责事务相关的操作。它是可选的,开发人员也可以设计编写自己的底层事务处理代码。Query和Criteria接
32、口负责执行各种数据库查询。它可以使用HQL语言或SQL语句两种表达方式。2.3 Div+CSS技术DIV+CSS是网站标准(或称“WEB标准”)中常用术语之一,div+css 是一种网页的布局方法,这一种网页布局方法有别于传统的HTML网页设计语言中的表格(table)定位方式,真正地达到了w3c内容与表现相分离。HTML语言自HTML4.01以来,不再发布新版本,原因就在于HTML语言正变得越来越复杂化、专用化。XHTML语言是一种可以将HTML语言标准化,用XHTML语言重写后的HTML页面可以应用许多XML应用技术。使得网页更加容易扩展,适合自动数据交换,并且更加规整。在XHTML网站设
33、计标准中,不再使用表格定位技术,而是采用DIV+CSS的方式实现各种定位。使用Div+CSS的网页布局,具有以下优点:使页面载入得更快、降低流量费用、修改设计时更有效率、保持视觉的一致性、更好地被搜索引擎收录、对浏览者和浏览器更具亲和力。虽然Div+CSS布局方式具有相对于Table布局很好的优势,但传统的Table布局也有相应的应用领域,Div+CSS不能完全代替Table布局,如有些类似于表格的布局若强制使用Div+CSS就会有些生硬,效果明显没有直接使用Table布局好。在我们的项目中,我们是使用Div+CSS+Table相结合的布局方式。2.3.1 DivDiv是HTML中的一个块级元
34、素标签(),Div元素是用来为HTML文档内大块(block-level)的内容提供结构和背景的元素。Div的起始标签和结束标签之间的所有内容都是用来构成这个块的,其中所包含元素的特性由Div标签的属性来控制,或者是通过使用样式表格式化这个块来进行控制8。2.3.2 CSSCSS(Cascading Style Sheet,层叠样式表或级联演示表),是一组格式设置规则,用于控制Web页面的外观,它也是DHTML的基础。通过使用CSS样式设置页面的格式,可将页面的内容与表现形式分离。页面内容存放在HTML文档中,而用于定义表现形式的CSS规则则存放在另一个文件中或HTML文档的某一部分,通常为文
35、件头部分。将内容与表现形式分离,不仅可使维护站点的外观更加容易,而且还可以使HTML文档代码更加简练,缩短浏览器的加载时间9。2.4 Javascript/Ajax/JQuery技术在Web编程中不可避免的希望给页面增加丰富的特效或者用户体验,那么Javascript就是一项必须要用到的技术,通过它可以给页面增加动画效果、对用户输入的信息进行验证、也服务器进行异步通信(Ajax)。为了更加简便的访问页面中的元素,我们使用JQuery来操作DOM(Document Object Model,文档对象模型),并且我们可以使用JQuery丰富的各种插件,如图形插件。2.4.1 JavascriptJ
36、avaScript是一种基于对象和事件驱动并具有相对安全性的客户端脚本语言。同时也是一种广泛用于客户端Web开发的脚本语言,常用来给HTML网页添加动态功能,比如响应用户的各种操作。它最初由网景公司的Brendan Eich设计,是一种动态、弱类型、基于原型的语言,内置支持类10。2.4.2 AjaxAjax(Asynchronous JavaScript And XML)即异步JavaScript及XML。通过 AJAX,您的 JavaScript 可使用 JavaScript 的 XMLHttpRequest 对象来直接与服务器进行通信。通过这个对象,您的 JavaScript 可在不重载
37、页面的情况与 Web 服务器交换数据。AJAX 在浏览器与 Web 服务器之间使用异步数据传输(HTTP 请求),这样就可使网页从服务器请求少量的信息,而不是整个页面。AJAX 可使因特网应用程序更小、更快,更友好11。2.4.3 JQueryJQuery是继prototype之后又一个优秀的Javascrpt框架。它是轻量级的js库(压缩后只有21k) ,它兼容CSS3,还兼容各种浏览器 (IE 6.0+, FF 1.5+, Safari 2.0+, Opera 9.0+)。jQuery使用户能更方便地处理HTML documents、events、实现动画效果,并且方便地为网站提供AJAX
38、交互12。2.5 xhEditor技术作为一个论坛系统,在一些页面中提供在线HTML编辑器是非常必要的,如用户发帖、回复时可以使自己的内容更加具有个性,同时提供格式化内容的功能。现在在线HTML编辑器可以选择的有很多。如比较著名的Fckeditor,它提供的功能是非常丰富的,在文字、图片编辑上可以和微软的word相媲美。但丰富功能的代价是由于代码复杂、繁多,学习曲线陡峭,运行加载慢。虽然现在这个项目为了轻量化,更名为CKEditor,减少了代码数量,运行快乐一些,但根据我们项目特性,我们最终决定使用xhEditor这个在线HTML编辑器,因为xhEditor是一个基于JQuery开发的简单迷你
39、并且高效的可视化XHTML编辑器,可定制性强,兼容IE 6.0+,Firefox 3.0+,Opera 9.6+,Chrome 1.0+,Safari 3.22+,同时它提供丰富的文档支持13。运行效果如图2.6所示xhEditor normal样式xhEditor mini样式xhEditor simple样式图2.6 xhEditor运行图示第三章 基于SSH框架的BBS项目概述3.1 项目总体目标该项目主要是实现一个具有优秀负载能力和可定制的在线论坛系统。一个具有优秀负载能力,用户友好的在线论坛系统可以获得较大的用户群和访问量。项目通过实现高性能的在线论坛系统并且提供具有优秀扩展性和可定
40、制性的论坛系统框架,可以用于实现各种主题和内容的在线论坛。3.2 项目需求3.2.1 一般性需求本项目是一个界面友好、美观、易于使用的论坛系统,具有优秀负载能力和可定制等特点。项目支持的语言:本项目后台程序Java语言编写,以实现强大的功能。前台主要运用JSP+Javascript+CSS+Div编写以追求页面的美观。操作性:本论坛系统必须提供给用户良好的可操作性。包括鼠标操作,键盘操作等基本操作。另外,本论坛系统还会较多运用快捷键,使熟悉本论坛系统的用户在访问效率及方便程度上能有较大提升。安全性:本论坛系统应该保证系统在运行时的安全性问题。运用最大能力,保证用户账户数据安全,不至于用户因为本
41、站系统用户数据、隐私的泄露造成损失。3.2.2 功能性需求本论坛系统主要的流程可以分成五部分:账号管理流程,帖子管理流程,管理员管理流程,搜索流程,统计流程。未注册的用户可以通过账号管理流程注册成会员,会员可以管理自己的个人信息,也可以进入帖子管理流程,进行发帖,回帖,管理、收藏、订阅帖子;管理员包括版主,分区版主,超级版主,系统管理员可以进入管理员管理流程,对论坛系统进行各种管理活动。注册会员可以对全站的主题帖进行搜索,查找自己感兴趣的主题进行操作。管理员则在登录以后可以统计功能,进行会员统计,主题帖统计,访问量统计等。会员管理操作如图3.1所示,帖子管理操作如图3.2所示。图3.1 会员账
42、号管理操作流程图3.2 帖子管理操作流程3.2.3 具体功能点需求根据项目要求,我们小组把整个项目分为5个模块,每人完成一个模块。系统管理模块由吕金负责;版区管理模块由王耀宇负责;搜索模块由朱瀛负责;帖子模块由刘东华负责;统计模块由任建新负责。每个模块分别对应一个子系统,系统管理模块对应系统管理模块子系统;版区管理模块对应版区管理子系统;搜索模块对应搜索引擎子系统;帖子模块对应业务管理子系统;统计模块对应统计子系统。系统总体结构如图3.3所示。图3.3 系统总体架构系统管理子系统系统管理模块主要进行会员信息自主管理,管理员对会员账号的管理以及管理员对网站基础信息的管理功能。会员通过会员账号管理
43、功能,进行对自己账号各个信息的设置和修改;管理员对会员账号管理功能允许管理员对会员账号进行添加、查询、修改、删除等操作,维护网站,同时还允许管理员对会员账号或IP的封禁。网站基础信息的管理功能允许管理员对网站的基础信息如“友情链接”,“论坛帮助”做出管理。系统管理模块包括会员个人信息管理、管理员会员管理和网络信息设置子模块。会员个人信息管理子模块:提供给网站用户系统登录/注销功能,提供给会员短消息管理、个人中心、个人资料设置等功能。系统登录/注销:会员注册、会员登录、找回密码、注销登录等。短消息管理:“短消息”是论坛会员间交流的工具,信息只有发件人和收件人可以看到,收到信息后系统会给出相应的提
44、示信息,会员可以通过短消息功能与同一论坛上的其他会员保持私人联系。“收件箱”和“发送短消息”中提供了短消息的收发服务;个人中心:查询自己的主题、回复、收藏、订阅,好友管理;个人资料设置:会员登录后,可以使用“个人资料设置”来维护本会员的所有个人信息。管理员会员管理子模块:提供给管理员添加会员、会员管理、禁止会员、禁止IP、会员资料管理、权限管理、查看会员列表等功能。网站信息设置子模块:为网站管理员提供友情链接管理和论坛帮助功能。业务管理子系统该模块提供给用户怎样使用此论坛系统以及该系统主要提供给用户的功能,包括两个子模块:帖子模块和帖子管理模块。帖子模块:描述用户进入该系统后根据角色的不同权限
45、可以对帖子进行什么操作。主要的帖子操作有:发布帖子、编辑帖子、浏览帖子、回复帖子、收藏帖子、订阅帖子、推荐帖子、举报帖子、引用帖子、删除帖子。帖子管理模块:描述用户进入该系统后根据不同的权限可以对帖子进行什么管理操作。主要的帖子管理操作有如会员、管理员可以进行主题帖管理、批量主题管理、批量删帖、附件管理。版区管理子系统版区管理子系统主要进行版区的管理,包括了管理员、超级版主和普通版主对于版区、版块、用户、主题等内容的管理。管理员具有最高权限,拥有创建、管理和删除版区的权限,同时对于版区和板块的内容具以及版区内的用户具有管理的权限。超级版主具有本版区内容管理的最高权限。普通版主对于本版块具有最高
46、权限。管理员、版主可以管理用户的权限和操作。对于发表的主题可以修改、删除主题,并对主题进行分类、加精华等处理。版主管理子模块:提供给管理员、版主对于版区内容和用户等进行管理的功能。管理员和版主可以通过网站管理界面登录。管理员具有所有权限,版主仅对于版区以及下属版块具有管理权限。管理员和版主可以在公告区发布公告。在用户管理页面上,管理员和版主可以管理用户在本版的权限,可以对用户进行短期或永久禁止发帖等管理,同时也可以屏蔽某些IP对应的用户。对于主题可以进行修改、加精、删除等管理。版区管理子模块:主要负责管理版区。提供管理员查看、添加、编辑、删除版区和设置版区顺序等功能。版块管理子模块:主要负责管
47、理帖子。提供管理员查看、添加、编辑、删除帖子和设置帖子顺序等功能。统计子系统统计子系统主要包括两大部分:基本情况统计和排行统计。基本情况统计:从论坛的会员和版块的角度对论坛的信息进行汇集,可以使用户对论坛的基本信息有一个总体的了解。包括会员统计、论坛统计。排行统计又包括版块排行统计和用户地域分布统计。版块排行统计:通过“版块排行统计”功能,用户可以了解到关于版块、主题、发帖的一些排行信息。包括版块排行(发帖排行榜、发帖总数、回复排行榜、回复总数)、主题排行(被浏览最多的主题、浏览次数、被回复最多的主题、回复次数)、发帖排行(发帖排行榜、发帖总数、精华帖排行榜、精华帖总数)。用户地域分布统计:搜集用户以及游客的ip信息,对其地域划分进行统计并进行显示。搜索引擎子系统搜索引擎子系统完成站内和站外的搜索功能。可以通过关键字搜索相关的帖子,也可以通过相关约束搜索其他用户。还引用Go