毕业设计论文基于Nosql的现在管理系统.doc

上传人:文库蛋蛋多 文档编号:2882117 上传时间:2023-03-01 格式:DOC 页数:37 大小:823KB
返回 下载 相关 举报
毕业设计论文基于Nosql的现在管理系统.doc_第1页
第1页 / 共37页
毕业设计论文基于Nosql的现在管理系统.doc_第2页
第2页 / 共37页
毕业设计论文基于Nosql的现在管理系统.doc_第3页
第3页 / 共37页
毕业设计论文基于Nosql的现在管理系统.doc_第4页
第4页 / 共37页
毕业设计论文基于Nosql的现在管理系统.doc_第5页
第5页 / 共37页
点击查看更多>>
资源描述

《毕业设计论文基于Nosql的现在管理系统.doc》由会员分享,可在线阅读,更多相关《毕业设计论文基于Nosql的现在管理系统.doc(37页珍藏版)》请在三一办公上搜索。

1、1 绪论1.1 在线讨论组系统简介在网络发达的信息化时代的今天,互联网成为人们快速获取、发布和传递信息的重要渠道,人们可以通过各种渠道,方式进行信息的获悉交流共享。从最初的报纸,广播,电视,到现在的Internet互联网络,看新闻,视频,来了解你所关注的,人们所获取信息的方式变化飞速。而以动态和交互性为特征的论坛逐渐成为Internet上最丰富、最开放和最自由的网络信息资源,成为目前最受欢迎的一种信息交流的方式。论坛也常被简称为BBS(Bulletin Board System)。早期的BBS没有传输功能,单只发布例如股市价格等简单消息,而随着计算机普及及WEB服务的兴起,基于WEB的BBS开

2、始强调主体性、交流性和互动性,于是诞生了论坛。通过BBS系统可随时取得国内甚至国际任何事件,也可以通过BBS系统和别人讨论各种有趣的话题,还可利用BBS系统来发布消息、广告等,提高了办事效率,也节省了成本和资源。自从1978年第一个BBS系统诞生于美国芝加哥至今,论坛的发展迅速且多样。虽然BBS始于美国,但由于总总原因,中文BBS人气却很兴旺。1991年国内建立第一个BBS站,经过长时间的发展,直到1995年,BBS才逐渐被人们所认识,各大高校纷纷建立起自己的论坛。由于某种机缘,让人们以及传统媒体认识到论坛巨大的力量以及网络传播效应,BBS论坛开始崛起。1996年BBS论坛更是以惊人的速度发展

3、起来,在不断发展下,论坛也逐渐细分,出现了综合型论坛、专题型论坛等众多类型的论坛。1998年被称为中国互联网元年。也正是从这一年开始,论坛的影响力逐渐凸显出来。在论坛上,大家可以对自己所看到的、听到的、想到的任何一件事做出评论。论坛的本身早已由原来的娱乐交流工具转化成了一种新兴媒体:网络媒体。我们的网络媒体在不断发展,不断变革。在不断前进的社会中不断增强其影响力与引导力。所以,论坛的建设和管理意义深远。然而论坛作为一种语言形式,同样也受到了博客、播客等新生代模式的冲击,尤其是博客,似乎在一夜之间所为人知,相对于有自我管理机制的博客来说,论坛也逐渐失去了固有的地位。虽然如今论坛发展迅猛,但其使用

4、性还需进一步加强。另外由于论坛独特的交流形式,其诚信危机、传播的文化的准确性、传播内容的宽度和广度、虚拟世界是否安全等问题逐渐暴露出来。因此,今后的BBS论坛将更加专业化和自主化,提供更加强大的个性化功能。论坛要保持强大的生命力,就要继续发展和积极开拓。1.2 NoSql数据库技术简介随着互联网web2.0网站的兴起,传统的关系数据库在应付web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已显费力,对数据库高并发读写的需求,对海量数据的高效率存储和访问的需求,对数据库的高可扩展性和高可用性的需求等问题关系数据库遇到了难以克服的障碍,为了解决这类问题的NoSQL,非关系

5、数据库应运而生,并因其本身的特点得到了非常迅速的发展。NoSQL打破了长久以来关系型数据库与ACID理论大一统的局面。NoSQL 数据存储不需要固定的表结构,通常也不存在连接操作。在大数据存取上具备关系型数据库无法比拟的性能优势。非关系型数据库以键值对存储,它的结构不固定,每一个元组可以有不一样的字段,每个元组可以根据需要增加一些自己的键值对,这样就不会像关系型数据库一样局限于格式化的数据结构,可以减少一些时间和空间的开销。NoSQL具有很多特点,如可以处理超大量的数据,可以运行在便宜的pc服务器集群上,通过NoSQL架构可以省去将Web或Java应用和数据转换成SQL友好格式的时间,执行速度

6、变得更快等特性。由于NoSQL项目开源,NoSQL未形成一定标准,各种产品层出不穷,内部混乱,各种项目还需时间来检验。Google 的BigTable与Amazon的Dynamo是非常成功的商业 NoSQL 实现。一些开源的 NoSQL 体系,如Facebook 的Cassandra, Apache 的HBase,也得到了广泛认同。Hypertable是一个开源的,高性能的,可伸缩的数据库,它采用与Google的Bigtable相似的模型。Bigtable可以通过一些主键来组织海量数据,并实现高效的查询。Hypertable是Bigtable的一个开源实现。Apache Cassandra是一

7、套开源分布式Key-Value存储系统。它最初由Facebook开发,用于储存特别大的数据。Cassandra是一个混合型的非关系的数据库,其主要特点是由一堆数据库节点共同构成的一个分布式网络服务,对Cassandra 的一个写操作,会被复制到其他节点上去,对Cassandra的读操作,也会被路由到某个节点上面去读取。对于一个Cassandra群集来说,扩展性能简单,只管在群集里面添加节点就可以了。和其他数据库比较,有很多突出特点,如模式灵活,扩展性能强,多数据中心识别等。本系统采用NoSql的另一种数据库技术,MongoDB。MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关

8、系数据库当中功能最丰富,最像关系数据库的。初次接触非关系型数据库,也最容易上手。MongoDB支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。本系统采用MongoDB作为数据的存储数据库,进行数据操作。MongoDB有如下的优势特点:MongoDB是一个基于分布式文件存储的数据库。旨在为WEB应用提供可扩展的高性能数据存储解决方案。它具有高性能,易部署,易使用等特点,存储数据非常方便。主要功能特征有

9、:面向集合存储,易存储对象类型的数据;模式自由,不同结构的文件可存储同一数据库;集合中的文档被存储为键值对形式,键用于唯一标识一个文档,为字符串类型,而值则可以是各种复杂的文件类型。我们称这种存储形式为BSON;使用高效的二进制数据存储,包括大型对象(如视频等)等。MongoDB去掉关系数据库的关系型特性。数据之间无关系,这样就非常容易扩展。也无形之间,在架构的层面上带来了可扩展的能力。且具有非常高的读写性能,尤其在大数据量下,同样表现优秀。这得益于它的无关系性,数据库的结构简单。在针对web2.0的交互频繁的应用,Cache性能不高。而MongoDB的Cache是记录级的,是一种细粒度的Ca

10、che,所以MongoDB在这个层面上来说就要性能高很多了。MongoDB无需事先为要存储的数据建立字段,随时可以存储自定义的数据格式。而在关系数据库里,增删字段是一件非常麻烦的事情。MongoDB在不太影响性能的情况,就可以方便的实现高可用的架构。MongoDB弥补了关系数据在某些方面的不足,在某些方面能极大的节省开发成本和维护成本。MongoDB是一个基于分布式文件存储的数据库。旨在为WEB应用提供可扩展的高性能数据存储解决方案。它具有高性能,易部署,易使用等特点,存储数据方便。主要功能特征有:面向集合存储,易存储对象类型的数据;模式自由,不同结构文件可存储同一数据库;集合的文档被存储为键

11、值对形式,键用于唯一标识文档,为字符串类型,值可以是各种文件类型。2 系统分析2.1 可行性分析可行性分析是系统开发设计前必须完成的步骤,针对要完成的相应的功能,能够运用所选用的技术手段去实现,并能保证该系统地安全,可靠。新系统的开发可以从技术,经济,社会等方面进行分析和研究,保证运用此技术能使新系统的开发顺利完成。以下就从几个方面进行分析。a) 技术可行性其主要分析应用该技术能否顺利完成该系统的设计开发以实现相应功能。本系统主要采用JSP语言和B/S三层体系结构模式就行开发。Sun公司的Java技术具有“一次编写,到处执行”的技术优势,JSP则是Java在Internet/Internet

12、Web上的应用技术,简单、灵活、可扩展性强。本系统采用NoSql之一的MongoDB数据库,使用键值对进行数据操作,它具有很多优点,如高性能、易部署、易使用、存储数据非常方便等,还可以跨平台,并且支持多种数据类型的存储,模式自由。这些给数据操作带来了良好的条件,能够很好地完成数据操作。b) 经济可行性经济可行性主要涉及到预算和经济效益,对于预算来说,本系统所设计的是一个交流平台,为用户提供信息交流、探讨问题的社区,所应用到的技术也是免费,并且开源的,并且只是针对毕业设计所设计的,只用于模拟,没有资金的流动,因此在经济方面是可行的。c) 社会可行性Internet技术的不断发展,使得网络世界丰富

13、多彩,论坛发展到现在,虽然诞生了微博等这种新型的通信方式,但论坛的地位仍然很重。人们可以在不同论坛上进行分领域分类型的信息交流,可以集大众的力量进行时时的探讨,交流问题看法等,方便,快捷。论坛对当今社会有很重要的作用。随着超大规模和高并发的SNS类型的Web2.0网站的兴起,传统数据库正在面临着一些问题,如对数据库高并发读写的需求,对大量数据的高效存储和访问的需求,对数据库可扩展性和可用性的需求,为了解决这些问题,非关系型数据库NoSql得以兴起,并且得到了飞速发展,正在完善和壮大。2.2 需求分析2.2.1 功能需求开发论坛系统的目的是提供一个供用户交流的平台,为广大用户提供交流经验、探讨问

14、题的社区。因此,首先用户必须注册,只有注册的用户才能发表相应的主题的帖子并回复自己感兴趣的帖子;没有注册的用户只能浏览,不能发帖跟帖;管理员权限最高,能够修改其他用户信息,所有帖子;其他用户,版主有相应的权限;对自己信息能够修改;能够按关键字查询主题帖的等。根据用户的需求及以上的分析,论坛需要具有以下功能:用户注册、用户登录、发表帖子、回复帖子、帖子修改删除、按主题搜索帖子、用户信息管理。2.2.2 功能模块介绍该系统主要设计实现了登录模块,注册模块,论坛首页模块,用户管理模块,退出模块,还有设计了三个固定主题的论坛版块,技术交流,美食天地,生活五味。用户可以进入相应的版块进行相应权限的操作。

15、登录模块:用户使用用户名和密码登陆。注册模块:注册用户名,密码,年龄,电话,电子邮箱,提交并返回登陆界面。论坛首页模块:显示所有的内容,用于用户进入主题板块进行浏览,包括游客。用户管理模块:用户进行信息的管理。查看个人信息,修改个人信息。管理员可以查看所有人信息,并进行修改删除等。退出模块:注销退出论坛,返回登录界面。技术交流,美食天地,生活五味模块:进入主题板块,可以查看相应帖子,发表帖子,回复更新帖子。3 技术方案3.1 MongoDB的特点MongoDB是由10gen公司支持的一项开源计划。是一种高性能,开源,模式自由的文档型数据库,采用二进制的JSON形式的BSON数据格式,它可以持久

16、化类似诸如Map,结构体,数组和各种动态语言的数据对象。目前已提供了对Python,PHP,C+,Java,C#,Pert等的驱动。MongoDB是以构建一个基于分布式文件存储系统的数据库为目标,由C+编写。MongoDB易于部署,管理和使用,其主要以高性能,可扩展的键值存储方式为主要设计目标。MongoDB主要有以下几个特性:a) 易存储对象类型的数据;b) 高性能。适合高容量,值较低的数据类型;c) 支持动态查询;d) 支持复制和故障恢复;e) 自动处理碎片用以支持云计算层次上的扩展性;f) 使用高效的二进制数据存储方式,可存储包括视频在内的大型数据。MongoDB主要目的是把键/值存储方

17、式和传统的RDBMS系统进行架构连接,集两者优势于一身。MongoDB适合于以下场景:网站管理数据:Mongo适合实时的插入,更新与查询,并具备网站实时数据存储所需的复制及高度伸缩性。缓存:由于性能很高,Mongo也适合作为信息基础设施的缓存层。在系统重启之后,由Mongo搭建的持久化缓存层可以避免下层的数据源过载。大尺寸,低价值的数据:使用传统的关系型数据库存储一些数据时可能会比较昂贵,在此之前,很多时候程序员往往会选择传统的文件进行存储。高伸缩性的场景:Mongo非常适合由数十或数百台服务器组成的数据库。Mongo的路线图中已经包含对MapReduce引擎的内置支持。用于对象及JSON数据

18、的存储:Mongo的BSON数据格式非常适合文档化格式的存储及查询。MongoDB在一些其他的应用地方也会有一些受限,例如它不适合:高度事务性的系统:例如银行或会计系统。传统的关系型数据库目前还是更适用于需要大量原子性复杂事务的应用程序。传统的商业智能应用:针对特定问题的BI数据库会对产生高度优化的查询方式。复杂的跨文档(表)级联查询。3.2 系统开发运行环境开发环境及工具:根据本次设计开发所需要的JSP语言,Mongo进行数据操作以及功能的需求,此论坛开发使其具备以下环境:l 操作系统:Windows XP;l Web服务器:Tomcat7.0;l Java开发包:JDK1.6;l 开发工具

19、:NetBeans7.1;l 数据库:MongoDB2.0.2;开发运行环境的配置:a) Java开发环境的配置:Java安装在D:Progran Files下。在“我的电脑”选择“属性”点击“高级”,点击“环境变量”然后有个“系统变量”,之后第一步新建变量名:JAVA_HOME,变量值:D:Program FilesJavajdk1.6.0_03。第二步新建变量名:PATH,变量值:%JAVA_HOME%bin;%JAVA_HOME%lib;%JAVA_HOME%jrelib;。第三步新建变量名:CLASSPATH,变量值:%JAVA_HOME%lib;%JAVA_HOME%jrelib;.

20、;。然后在cmd运行java,javac成功。b) MongoDB数据库安装配置:设置MongoDB目录:将MongoDB解压到D:,重命名为mongodb,路径为D:mongdb。设置数据文件路径:在D盘建一个data文件夹,在data文件夹中新建db文件夹,路径D:datadb。启动MongoDB服务:进入 cmd控制台,执行 D:mongodbbinmongod.exe -dbpath=D:datadb。设置存储日志:先创建D:mongodblogsmongodb.log文件,用于存储MongoDB的日志文件,进入cmd控制台,执行D:mongodbbinmongod -dbpath=d

21、:datadb -logpath=d:mongodblog。客户端连接验证:进入cmd控制台,执行D:mongodbbinmongo,出现如下提示 MongoDB shell version: 2.0.4;connecting to: test配置运行成功。c) Web服务器Tomcat的配置:安装配置完成JDK1.6,然后安装NetBeans7.1,自带Tomcat并安装。NetBeans运行程序即可。4 系统总体设计4.1 系统模块的组成a) 系统整体模块组成:该系统主要设计实现了登录模块,注册模块,论坛首页模块,用户管理模块,退出模块,还有设计了三个固定主题的论坛版块,技术交流,美食天地

22、,生活五味。用户可以进入相应的版块进行相应权限的操作。b) 功能模块相应功能实现:以下介绍下个功能模块实现的功能:登录模块:可以在欢迎页面选择进入登陆页面,在登陆页面登陆直接登陆,系统自动纪录用户登陆信息,保存在会话中,结束会话的时候,才退出系统。注册模块:只有在论坛填写注册信息的用户能在论坛中发表帖子,普通的游客只可以浏览主页,而没有发表帖子和回复帖子的权限。新用户注册系统会自动给用户一个提示信息,用户可以自由定制自己的头像及相关信息,但在用户注册的时候系统会有一定的限定,不符合限定规则的注册信息,系统将自动提示错误信息,直到用户的注册信息填写符合规则的时候系统才会提示注册成功,这样便于用户

23、的正规化管理。信息管理:登陆用户可以对查看自己的注册信息,并进行相应的修改操作。论坛搜索:支持对论坛的标题、内容、发言人等多种查询,方便用户对帖子的查询。发表贴子:登陆(注册)用户可以自由在的论坛的各个版块内发表帖子,论坛目前有三个版块,用户可以在导航栏分别进入三个版块,并且在三个版块内自由查看及发表帖子。回复帖子:登陆(注册)用户可以对不同的主题进行回复,发言格式同主题帖格式相同,显示在各主题内部。用户权限:系统将用户分为不同的权限,分为游客,注册用户,版主,管理员,不同的权限代表着他可以进行不同的操作。c) 系统模块关系图。如图4-1图4-1系统模块关系图4.2 系统流程图论坛系统的整体流

24、程图。如图4-2图4-2整体流程图5 数据库设计5.1 数据库分析一个程序或者系统的设计完成要包括许多方面,而不管怎样的系统设计都要设计到数据的操作,因此,一个合理,有限的数据库设计,起着非常重要的作用,良好的数据库设计能是程序开发更容易。本系统是一个在线讨论的信息网站,考虑成本,信息交流量,信息存储更新速度等问题,决定采用MongoDB作为项目的数据存储工具。MongoDB是一个基于分布式文件存储的数据库。是介于关系型数据库和非关系型的一种数据库,它具有高性能、易部署、易使用等特点,并且可以存储比较复杂的数据类型,因此存储数据非常方便。它可以提供可扩展的高性能数据存储方案,来为Web应用服务

25、。MongoDB数据库可以存储大量的,不同类型的数据,MongoDB的BSON数据格式非常适合文档化格式的存储及查询。并且MongoDB的开发者10gen也开发出了连接Java的驱动包mongo-to-java.jar,给出了Java的API接口,这样就可以很方便的使用Java语言进行数据库的相关操作。5.2 数据库整体设计对于MongoDB数据库,有自己的Shell客户端,MongoDB是MongoDB自带的交互式Javascript shell,用来对MongoDB进行操作和管理的交互式环境。5.2.1 创建数据库创建数据库,使其命名为forum使用Shell语句:use forum如图5

26、-1图5-1创建forum数据库5.2.2 创建集合文档MongoDB不用手动建立数据库,集合,文档,它能够通过Jsp页面调用相应的函数自动创建相关数据,很好的体现了模式自由,没有结构的限制。这里手动建立,可以更清晰的显示出所包含的文档内容。MongoDB中的集合相当于关系型数据库中的表。创建两个集合:user和article,用于存储相关数据。创建user文档集合,并插入一条数据。如图5-2图5-2创建user集合创建article文档集合。如图5-3图5-3创建article集合创建数据库的两个集合用于存储数据。user用于存储用户的注册信息,name存储用户名,password存储密码,

27、sex存储性别,age存储年龄,phone存储电话号码,email存储邮箱地址,address存储住址,rank存储用户级别,pubnum存储统计发帖数目。article帖子内容,包括发帖和回帖内容。id存储帖子地址id,authorID存储用户随机id,title存储文章标题,content存储帖子内容,boardID存储用户级别,reID回帖id对应帖子地址,reNum存储回复帖子的数目,pubtime存储帖子更新时间。5.3 数据库连接采用Java连接获取数据库以及集合,首先必须要导入mongo连接Java的驱动程序驱动包mongo-to-java.jar,才能够使用Java连接数据库进

28、行操作。a) 连接forum数据库:Mongo m = new Mongo( localhost , 27017 ); DB db = m.getDB( forum );获取forum数据库,如果该数据库不存在则自动创建。b) 设置用户名和密码:boolean auth = db.authenticate(myUserName, myPassword);设置用户名密码连接:有就返回true,否则返回false。c) 获取数据库集合:Set colls = db.getCollectionNames(); for (String s : colls) System.out.println(s);

29、 从数据库中获得所有的集合。DBCollection myCollection=db.getCollection(user)从数据库中获取user文档集合。6 系统详细设计与实现本次论坛系统中,主要设计了注册、登录、用户管理(管理员所有)、个人信息修改、个人信息查看、退出等模块,用以实现论坛功能的实现。由于前台功能模块较多,而各模块的实现过程都是类似的,所以对于系统前台,现在只介绍系统重点设计。6.1 登录模块的设计实现登录模块用以注册用户的登录功能,以方便进行帖子的管理和维护工作。论坛登录界面示意图。如图6-1图6-1登录模块登录功能处理流程图。如图6-2图6-2登录流程图功能说明:登录界面

30、主要有用户名、密码两项。输入自己的用户名和对应密码,点击登录即可登录。如果填写的用户名或者密码不对,给出“对不起,您的用户名或密码不正确,请重新登录!”的提示;如果填写正确,点击登录,系统会根据用户权限进入相应论坛首页,以完成用户的其他操作。如果用户名或者密码输入错误,点击清空,直接清空所有内容。如果没有注册用户,点击注册新用户,则进入用户注册界面,进行注册。登录模块的实现代码login.jsp:论坛登录论坛登录用户名: 密码:      注册新用户说明:以上代码设置实现了一个4行1列的表table,两个文本框,两个按钮,一个连接,用以实现输入用户名和密

31、码,调取verify.jsp页面,从数据库匹配信息登录。调取register.jsp进行新用户的注册。%String warning=request.getParameter(warning);if(warning!=null)out.println(+warning+,请重新登录!);%6.2 注册模块的设计实现注册模块用以实现用户的注册功能,方便获得更多权限,发帖、跟帖等。注册界面示意图,如图6-3图6-3注册模块注册功能处理流程图。如图6-4图6-4注册流程图功能说明:注册功能界面主要包括,用户名、密码、性别、年龄、电话、电子邮箱、家庭住址。其中带星号的两项未必填。用户名长度必须保证在3

32、到20之间,没有其他的条件限制;密码长度在6位以上,最好是复杂些,以确保更安全性;电子邮箱必须带;其他几项没有要求限制,可填。注册成功后,界面会自动跳转到论坛首页。按全部重新,可以清空所有填写内容。注册模块的实现代码register.jsp:function check()if(myform.username.value.length20)alert(用户名长度必须在1位到20位之间!);return false;if(myform.password.value.length6)alert(密码的长度应大于等于6位!);return false;if(myform.password.value

33、!=myform.password2.value)alert(两次输入的密码不一致!); return false;var age=myform.age.value;for(i=0;iage.length;i+)if(age.charAt(i)9)alert(请输入有效年龄!);return false;var phone=myform.phone.value;for(i=0;iphone.length;i+)if(phone.charAt(i)9)alert(请输入有效电话!);return false;var em,index;em=myform.email.value;index=myf

34、orm.email.value.indexOf();if(index=em.length-1)alert(请输入合法的电子邮件地址!);return false; 说明:以上代码实现的是对注册用户信息的条件的规定,定义check( )用于下面调用。比如用户名在3到20字符之间等相应的约束。只有满足规定才能顺利完成注册。 用户名: 密码: 密码确认: 性别: 男 女 年龄: 电话: 电子邮件: 地址: 头像: % for (int i=1;i=60;i+) out.println(Image+ i +); %        说明:以上代码主要实现

35、注册功能的界面部分。该界面设计了一个10行2列的表table,七个文本框,两个按钮,用以实现输入用户名、密码、电话号码等信息,点击提交按钮调取check( )进行注册信息规定的限制及注册失败提示,调取adduser.jsp页面,根据相应参数将数据存入数据库,完成新用户的注册。6.3 用户信息模块的设计实现不同的用户只能进入相应权限的功能操作中,进行相应权限内的数据管理。用户信息功能处理流程图。如图6-5图6-5用户信息流程图a) 管理员身份管理员身份进入用户管理界面示意图。如图6-6图6-6管理员模块管理员对用户进行信息修改。如图6-7图6-7管理员信息修改模块功能说明:管理员进入到用户管理界

36、面可以进行操作。界面显示有用户名,性别,年龄,用户级别,发表文章数,以及对用户进行修改和删除等功能。管理员可以通过用户名、性别、年龄进行用户的查询;通过修改功能对相应的用户进行信息修改,可以修改用户级别,使其得到相应权限。通过删除操作直接将用户信息从数据库中删除。b) 版主身份版主信息修改界面。如图6-8图6-8 版主信息修改模块功能说明:版主进入论坛以后,只能查看个人信息和修改个人信息,不可以对其他用户进行信息修改。版主和普通用户没有修改用户级别的权限,也没有这个选项。普通用户信息管理和版主权限相同。6.4 帖子模块的设计实现6.4.1 不同权限用户实现帖子管理不同权限的用户,对论坛内所有帖

37、子的操作不同。管理员权限:管理员拥有最高权限,可以对所有用户所发表的所有帖子进行修改,删除,加精等操作。版主权限:版主权限比管理员权限要小些,版主除了能发帖,回帖,查询所有帖子外,只能对自己版块内的帖子进行修改,删除,加精等操作。其他版块和普通用户一样。普通用户权限:普通用户权限比版主权限要低。没有对帖子进行修改,删除,加精等管理操作,除此之外和版主对帖子的操作相同。发帖,回帖,查询等相应操作。本系统是通过输入页面信息判断特定的session,用来对用户的权限进行判定。用户登陆成功后,组件会通过发送相对应的用户session,以后用户对论坛的每次操作,都要最先通过查询session,去判断用户

38、的权限。6.4.2 帖子模块实现帖子模块功能处理图。如图6-9 图6-9帖子模块流程图这部分首先根据JSP网页,建立相映的Action逻辑判断类,然后是建立了和帖子相关的数据库访问DAO,最后设计出接口进行关联,用以实现帖子模块功能。在编写帖子模块上使用了分页显示的功能。进入某个论坛或者主题板块时,让所有帖子分数量,分批次的显示出来,点击下一页进行转换。为了实现这个功能,设计编写了一个分页bean,位于spage包下,主要包括以下属性:int page 当前当前页数int perPageNum 当前页显示的帖子数int allPage 总共页数系统可以把页数信息,封装到bean中,然后进行相关

39、的显示。用户进入某个板块时,会显示出相应版块的分页信息,然后把相关帖子封装到response中,发送给该用户。进入某一主题帖,系统会按照文章发表的时间,将帖子和相关的回复信息显示出来。6.5 数据库连接的设计实现在DBBean.java中设计了插入,删除,更新,查询等方法,并通过javabean实现与Jsp的连接。Jsp界面通过以下语句进行调用DBBean.java,方便与数据库连接进行操作。6.5.1 连接操作连接MongoDB,并得到命名为vote的数据库。 private Mongo mongo; public DBCollection dbCollection ; private DB db; public DBconn() throws Exception try mongo = new Mongo(localhost, 27017); db=mongo.getDB(vote); catch (UnknownHostException e) e.printStackTra

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号