基于JSP的财大家园BBS论坛的设计与实现毕业论文_第1页
基于JSP的财大家园BBS论坛的设计与实现毕业论文_第2页
基于JSP的财大家园BBS论坛的设计与实现毕业论文_第3页
基于JSP的财大家园BBS论坛的设计与实现毕业论文_第4页
基于JSP的财大家园BBS论坛的设计与实现毕业论文_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、本科生毕业论文(设计)基于JSP的财大家园BBS论坛的设计与实现姓名学号专业指导教师2011年05月20日摘要随着网络应用的兴起,人们交流的方式也发生了翻天覆地的变化。网络聊天、网络视频和邮箱系统等网络应用的出现正在改变着人们彼此之间沟通、交流的方式。此外,为了满足人们在某一特定主题下的知识获取和信息发布,出现了在线网络论坛。各种各样的主题论坛几乎囊括了人们生活的每个角落。人们根据自己的专业特长和兴趣爱好在论坛上提出自己的问题,即提出主题。而后其他人根据主题内容可以发表自己的意见和看法,即回复主题。一千个人有一千个哈姆雷特,论坛集大家之所长,所感,为每一个用户提供了丰富的知识矿藏。论坛是一个让

2、人足不出户即可了解外界世界,了解他人所想的工具。在人们生活节奏逐步加快的今天,必有其存在的现实意义。正是基于这样的认识,开发了此BBS论坛系统。除了提供根本的看帖、发帖、回帖、搜帖的功能,针对管理员用户系统还提供了用户管理和帖子管理的操作。目的是基于现实,为用户提供一个模拟的网上交流环境。方便大家的沟通交流,丰富人们的娱乐文化生活。在论文的篇章上,本论文从系统分析、系统整体设计、数据库设计、系统详细设计与实现几个方面对系统的开发过程作了详细的介绍,旨在全面地呈现系统由最初设计到最终定型的各个阶段,便于大家对系统有一个更好的把握和认识。系统的具体实现细节那么在论文的系统详细设计与实现一章给出了具

3、体的阐述,各个功能版块的展示也包含在其中,能够直观地看到系统运行后的演示效果。其间夹杂着局部主要代码的辅助说明,便于从底层查看系统的最终实现。关键词:JSP;网上论坛;模拟社区;在线交流?MACROBUTTON NoMacro Click and type abstract text here.AbstractWith the development of the Internet,the way of peoples communication has undergoned enormous changes.Web chat,Online Video and Mailbox System a

4、re changing the way of peoples mutual communication.And to meet the request of getting the knowledge and publishing information,Internet Forum has come to appear.All kinds of topic forum almost cover every corner of perples lives.Based on the major,speciality or interest,people pose questions on the

5、 forum,named Posting;Then,other people can publish his or her opinion or viewpoint aimed at the topic that has been released by other people before.This process named Post Followup.For there are a thousand Hamlets in a thousand peoples eyes,the forum gathering the speciality and thoughts of people,s

6、upplying very abundant resources for us.By means of it,people who never to go out can know the outside world and other peoples thoughts.Nowadays, pace of peoples life has been speeding up gradatim,the existence of the fourm must has its reala signifo itself.This BBS System is developed based on the

7、cognition.Besides the fundamental function,such as Reading post,Posting and Replying post,the BBS System also provide the function of managing post and users for adminstrat.The aim of the System is to create a virtual environment of communication online.What we want to do is to make peoples communic

8、ation more convenient,to rich peoples lives with culture and entertainment.The thesis descripts the progress of the developing of the system with four chapters.They are Analysis of system,Entire design of system,Design of Database,Detailed design and achievement of system.The aim is to entirely pres

9、ent every progress from initial design to finalizing the design of the system,to provide convenience for people to grasp or understand the system better.The relizing details of the system is showed at the chapter which is named Detailed design and achievement of system.The demonstration of every fun

10、ctional module is added to this chapter,so that we can see the running effect more directlier.Some main code is also added to make assist description.In this way,we can see the mechanism of the final realization of the system.Key Words: JSP,Web BBS,Simulation Community,Online Communication目录 TOC o 1

11、-3 h z u HYPERLINK l _Toc294218943 1 引言 PAGEREF _Toc294218943 h 1 HYPERLINK l _Toc294218944 2 系统分析 PAGEREF _Toc294218944 h 2 HYPERLINK l _Toc294218945 2.1 需求分析 PAGEREF _Toc294218945 h 2 HYPERLINK l _Toc294218946 2.1.1 功能性需求 PAGEREF _Toc294218946 h 2 HYPERLINK l _Toc294218947 2.1.2 非功能性需求 PAGEREF _To

12、c294218947 h 6 HYPERLINK l _Toc294218948 2.2 可行性分析 PAGEREF _Toc294218948 h 6 HYPERLINK l _Toc294218949 3 系统总体设计 PAGEREF _Toc294218949 h 8 HYPERLINK l _Toc294218950 3.1 系统目标 PAGEREF _Toc294218950 h 8 HYPERLINK l _Toc294218951 3.2 系统功能划分 PAGEREF _Toc294218951 h 8 HYPERLINK l _Toc294218952 3.2.1 前台功能结构

13、 PAGEREF _Toc294218952 h 8 HYPERLINK l _Toc294218953 3.2.2 后台功能结构 PAGEREF _Toc294218953 h 9 HYPERLINK l _Toc294218954 3.3 系统开发环境 PAGEREF _Toc294218954 h 10 HYPERLINK l _Toc294218955 3.3.1 开发环境 PAGEREF _Toc294218955 h 10 HYPERLINK l _Toc294218956 3.3.2 系统平台体系结构的选择 PAGEREF _Toc294218956 h 11 HYPERLINK

14、 l _Toc294218957 3.3.3 JavaScript语言简介及特点 PAGEREF _Toc294218957 h 11 HYPERLINK l _Toc294218958 3.3.4 JSP概述 PAGEREF _Toc294218958 h 11 HYPERLINK l _Toc294218959 3.3.5 MySQL PAGEREF _Toc294218959 h 12 HYPERLINK l _Toc294218960 3.3.6 JDBC技术 PAGEREF _Toc294218960 h 12 HYPERLINK l _Toc294218961 4 数据库设计 PA

15、GEREF _Toc294218961 h 13 HYPERLINK l _Toc294218962 4.1 数据库分析 PAGEREF _Toc294218962 h 13 HYPERLINK l _Toc294218963 4.2 数据库概念设计 PAGEREF _Toc294218963 h 13 HYPERLINK l _Toc294218964 4.3 数据库的逻辑设计 PAGEREF _Toc294218964 h 15 HYPERLINK l _Toc294218965 5 系统详细设计与实现 PAGEREF _Toc294218965 h 19 HYPERLINK l _Toc

16、294218966 5.1 前台设计 PAGEREF _Toc294218966 h 19 HYPERLINK l _Toc294218967 5.1.1 前台页面设计与实现 PAGEREF _Toc294218967 h 19 HYPERLINK l _Toc294218968 5.1.2 用户注册/登录、管理员登录 PAGEREF _Toc294218968 h 20 HYPERLINK l _Toc294218969 5.1.3 论坛版块的展示 PAGEREF _Toc294218969 h 23 HYPERLINK l _Toc294218970 5.1.4 发表新主题 PAGEREF

17、 _Toc294218970 h 25 HYPERLINK l _Toc294218971 5.1.5 搜索主题 PAGEREF _Toc294218971 h 26 HYPERLINK l _Toc294218972 5.1.6 查看及回复主题 PAGEREF _Toc294218972 h 27 HYPERLINK l _Toc294218973 5.1.7 优化主题的一些小设计 PAGEREF _Toc294218973 h 29 HYPERLINK l _Toc294218974 5.2 后台设计 PAGEREF _Toc294218974 h 32 HYPERLINK l _Toc2

18、94218975 5.2.1 管理员登录 PAGEREF _Toc294218975 h 32 HYPERLINK l _Toc294218976 5.2.2 修改和删除主题 PAGEREF _Toc294218976 h 32 HYPERLINK l _Toc294218977 用户信息管理 PAGEREF _Toc294218977 h 33 HYPERLINK l _Toc294218978 结束语 PAGEREF _Toc294218978 h 36 HYPERLINK l _Toc294218979 参考文献 PAGEREF _Toc294218979 h 381 引言网络的兴起与开

19、展,极大地改变了人们的思维和行为习惯。基于网络的应用也层出不穷,论坛就是最早兴起的应用之一。作为一种传递消息的方式,最早的BBS的作用是公布股市的即时消息,而随着时代的开展,现在的BBS的内容已到达无所不包的程度。小到生活趣事,大到专业知识,各种各样的主题论坛让人眼花缭乱。论坛网页的形式也由最初的静态页面开展到现在的动态页面,更好的实现了用户之间的交互。把BBS作为一种对外的展示窗口,进行内外信息交流,已然成为群众的广泛需要。财大家园论坛就是通过动态Web开发技术和数据库技术实现的以财大学生与老师为主要效劳对象的一个基于现实环境之上的一个网上论坛,力求创造出一个模拟的网上校园虚拟环境。财大人可

20、以足不出户,在论坛上共享一切值得分享的主题,方便交流;外界人士也可以通过此论坛更好的了解财大学生的焦点和兴趣所在,省时省力。在论坛的设计上,增加了版块类别。不同的版块区域所包含的讨论主题会有所区分,这样的话,就能以主题不同,分版块分主题地记录了你我他的点滴心声。此论坛是基于B/S模式的一种JSP网页论坛的设计与实现,力求做到界面友好、简单和易于操作。论文从几个大的方面来对系统的开发做出了阐述。在系统分析一章从需求分析和可行性分析两方面来做具体阐述;系统整体设计那么从系统目标、系统功能划分和系统开发环境三大方面说明,结合后面的系统详细设计与实现一章完成对系统从整体到细节的全方位的理解。数据库设计

21、单独设一章,对数据库的分析、概念设计和逻辑设计给出了详细说明。系统的详细设计与实现一章对系统的各个功能模块的设计与实现做了详细说明,分为前台设计和后台设计两个局部。其中,前台设计几乎囊括了整个设计与实现的大半局部。在所有章节中,系统总体设计、数据库设计和系统详细设计与实现三章是主要内容。论文尽可能的将与系统相关的内容解释清楚,目的就是将系统的整个开发流程展示给大家。2 系统分析2.1 需求分析2.1.1 功能性需求开发BBS论坛系统的目的是为了提供一个大家交流的平台,供人们发表看法、探讨经验、讨论问题。因此,BBS论坛系统的最根本的功能是发表主题,其次是其它人员根据主题发表自己的看法,即回复主

22、题。考虑到现实情况,并不是每一个访问的游客都具有发表主题的权利,所以必须用一个身份绑定用户,赋予其发表主题的权利,这就需要实现用户注册及登录的功能。每一个系统都需要管理员这个特殊群体的存在,所以也需要实现管理员登陆的功能。管理员区别于一般用户的地方在于,管理员往往具有更高的权限,有权对用户信息和帖子内容作出某些“增删改查的操作,所以,针对管理员,系统应该实现删除和修改帖子以及对用户的管理等功能,以实现管理员对社区的管理 。考虑到社区访问量会很大,用户发表的帖子的数量自然很多,在浩瀚的帖子海洋中,如何才能查看自己感兴趣的帖子成为了一个不得不考虑的问题。所以,系统还应该实现搜索帖子的功能,用模糊查

23、询的方法,对社区的帖子进行筛检的工作。本系统针对用户还实现了一个特殊的功能,即邮件发送。如果某个用户对其他的用户感兴趣,那么可以通过将邮件发送到指定用户注册时所填写的邮箱地址,这样的话,就能够实现即时通讯的功能。综上所述,BBS论坛系统的功能就可以进行如下划分:1、前台局部主要涉及系统前台,即用户所能看到的网页所涉及到的功能。主要包括:用户注册/登录,发表新主题,回复主题,查看主题内容,搜索主题,邮件发送。2、后台管理局部主要是数据库的操作,针对系统管理员设置的一些功能。主要包括:管理员登录,删除与修改主题和用户信息管理。 SKIPIF 1 0 图2-1 系统功能介绍数据库局部,本系统新建了系

24、统用数据库bbs,并在其下创立了五张表:user用户表、article主题表、admin管理员表、grade用户等级表和edit版块类别。本系统在设计之初,为简单起见,欲暂不考虑系统管理员的设置,默认此系统只有一个管理员账户,用户名和密码均为“admin。但这种做法在现实生活中是很难满足实际需求的。所以,最终创立了管理员表admin,以实现对管理员信息的统一存储和管理。理论上应该有四个业务角色:游客、用户、管理员以及帖子。系统的用例图如下: SKIPIF 1 0 图2-2 系统用例图从用例图中我们可以看出,游客的权限最低,只能查看、回复和搜索主题;用户的权限居中,能够发布、回复、搜索和查看主题

25、;管理员的权限最高,除了能够实现用户的所有功能,还能够修改和删除主题,并且能够对用户信息进行管理,具有行使系统所能够提供的一切权利。说明:用户和游客非用户的身份区别主要通过“用户注册的功能实现,系统通过sql语句将注册用户信息保存到user表中,用户登录时查询user表,并以返回结果的有无判断个人的真实身份。系统的顶层数据流图DFD如下: SKIPIF 1 0 图2-3 顶层数据流图DFD SKIPIF 1 平台限制。本系统是在Window xp环境下开发,对系统没有过高的其它要求。2效劳器支持。本系统是基于B/S模式下的论坛系统,采用的效劳器是Tomcat 版本。3数据库支持。本系统采用的数

26、据库是MySQL 5.1版本,同类型或更高级别的数据库管理软件都能适用。4基于MyEclipse平台下开发。2.2 可行性分析需求分析答复的是“做什么,不做什么的问题,而可行性分析答复的那么是“做,还是不做的问题。可行性分析是在调查分析的根底上,针对新系统的开发是否具有实用性和可能性,对新系统的开发从经济、技术、社会环境和人等发面进行分析和研究。可行性分析往往能够对决策者提供有价值的依据,以防止投资失误,保证新系统的开发成功。联想集团领导人柳传志2006曾说:“没钱赚的事我们不干;有钱赚但投不起钱的事不干;有钱赚也投的起钱但没有可靠的人选,这样的事也不干。可见可行性分析的重要性。1、技术可行性

27、技术上的可行性分析主要指在现有可用的技术根底上,是否能够顺利完成新系统的开发工作。从硬件方面来看,计算机硬件的更新速度正在不断提高,与此同时,系统的稳定性也在不断加强。容量越来越大,性能越来越强,而价钱却越来越低。所以,仅从硬件方面来看,完全能够提供满意的系统开发环境。从软件方面来看,该BBS论坛采用了流行的动态网页设计技术JSP和当前流行的B/S浏览器/效劳器设计模式进行开发。B/S模式本身是随着Internet技术的兴起,对传统C/S结构的一种变化或者改良结构,具有很多传统结构所不具有的优点。先进的Internet/Intranet国际互联网/企业内部互联网技术,保证了B/S结构的强有力态

28、势,将B/S结构的应用转变成为一种特定时代条件下的大势所趋。本系统的效劳器采用的是Tomcat 版本,Tomcat开展至今,技术上自不必说,性能也很稳定,完全能够担负效劳器的重任,辅助完成中小型应用的成功开发。数据库效劳器选用的是MySQL 5.1版本,是目前运行速度最快的SQL语言数据库,能够同时处理大量数据,并保证数据的完整性。它的灵活性、易用性和平安性为新系统的开发提供了一个良好的环境。2、经济可行性经济可行性所作的工作主要是对工程整体的经济效益进行评估,本系统的目的是模拟一个网上交流的平台,供用户在社区交流经验、探讨问题。但实际只是用于个人毕业设计,不涉及商业上的运作,纯粹模拟,故不存

29、在资金上的流动,也不存在经济不可行的问题。3、社会可行性随着Internet技术的迅猛开展,BBS论坛已成为越来越多网民彼此交流,获取信息的重要途径。在论坛上,人们可以发表自己一切感兴趣的话题,也可以根据别人所发的主题发表一些自己的看法,心得体会等。通过BBS论坛获取信息及发表主题已成为一种时尚的生活方式。BBS论坛缩短了人们之间的距离,在不知不觉间,早已成为人们网上生活的必备工具,可见论坛存在的必要性和开展的前景。3 系统总体设计3.1 系统目标基于BBS论坛在现实生活的实际应用,本系统的系统目标是提供一个以现实环境为根底的网上模拟交流平台,通过它,人们可以不必拘泥于空间和时间上的限制,方便

30、交流,畅所欲言,同时也能够更加便利的看到周围人的想法,观点,最大化的丰富人们的视野和生活,让人随时都能身在其中,随时也能置身事外。3.2 系统功能划分 前台功能结构系统的前台初始页面如下,登录地址为“ :/localhost:8080/BBS:图3-1财大家园网首页当用户登录到论坛首页时,其默认的身份就是游客,只能查看、回复、搜索帖子,而不能执行发帖等其它操作。如果用户为非注册用户,那么其可以进行注册以获得一个登录身份。如果用户为已注册用户,那么其可以直接进行登录,然后以注册用户的身份执行诸如发表新主题、查看新主题、回复主题、搜索主题等一系列操作。前台系统流程图具体如下: SKIPIF 1 0

31、 图3-2 前台系统流程图此时,用户已经具有了一种身份,此后用户可以以此种身份执行诸如发表新主题、查看主题、搜索主题、回复主题等操作。 后台功能结构后台功能主要是针对管理员而设置的,用户以管理员的身份登陆后,就能执行后台管理的操作,具体到此BBS论坛,主要是指删除和修改主题以及对用户信息的管理。后台系统流程图如下: SKIPIF 1 0 图3-3 后台系统流程图3.3 系统开发环境 开发环境在建立工程前,需要首先搭建开发环境。此BBS论坛系统的开发需要用到以下几种工具,故开发前需要进行相应的下载和安装:开发平台:MyEclipse 9.0M2Web效劳器:Tomcat 数据库效劳器:MySQL

32、 5.1Java开发工具:JDK 辅助工具:Dreamweaver CS4 系统平台体系结构的选择在系统开发领域内,目前存在两大主流系统平台的开发结构,一种是C/S结构,而另一种是B/S结构。C/S结构,即大家熟知的客户端/效劳器结构,是一种应用较早,相对传统的开发模式。通过它,可以充分利用两端硬件环境的优势,将任务合理的分配到Client端和Server端,降低了系统的通讯开销。B/S结构,即浏览器/效劳器结构,是随着Internet的兴起,对C/S结构的一种变化或者改良。在这种结构下,用户不需要借助于客户端软件,通过WWW浏览器,即可实现系统的全部既定功能。在这种模式下,一局部事务逻辑在前

33、段实现,但是主要事务逻辑在效劳器端实现,大大简化了客户端电脑载荷,减轻了系统维护与升级的本钱,从而降低了用户的整体本钱。从开放程度来说,传统的C/S结构虽然采用的是开放模式,但这个开放性只是针对系统开发一级的,在特定的应用中,无论是客户端还是效劳器端都还需要特定的软件支持。而B/S结构,是一次性到位的开发,应用此模式开发的系统,不同人员,在不同地点,以不同的接入方式比方LAN、WAN等访问并操作共同的数据库,能有效地保护数据平台和管理访问权限,效劳器的数据库也很平安。特别是在Java这样的跨平台语言出现之后,B/S架构管理软件起来更是显得方便,快捷和高效。可以说,B/S是乘着Internet兴

34、起的风而杨风远航的,是适应时代的产物。但是,B/S也存在着自己的缺乏,比方说其在大量数据分析,实时控制应用方面就存在着需要改良的地方。综合考虑,本系统还是考虑使用当下流行的B/S结构作为系统的开发模式。 JavaScript语言简介及特点JavaScript语言是Netscape公司开发的一种脚本性语言Scripting language,或者称其为描述性语言。作为一种编程语言,其出现的使命就是为了适合动态网页制作的需要,颇具工具色彩。在静态网页Html的根底上,使用JavaScript可以开发交互式Web网页,能够使网页和用户之间实现一种实时性的、动态的、交互性的关系,使得网页包含更多活泼的

35、元素和更加精彩内容。可以说,JavaScript是专门为制作Web网页而量身定做的一种简单的编程语言。JavaScript是在客户机上执行的,其特点和功能主要是短小精悍,能够大大提高网页的浏览速度和交互能力。其特有的工具色彩让其在动态网页的开发中找到了用武之地。 JSP概述JSP是由Sun公司在Java语言的根底上开发出来的一种动态网页制作技术,其将标记插入到页面中,从而使网页中的静态局部和动态局部别离开来。JSP是类似ASP的一种技术,在传统的静态网页HTML文件插入Java程序段和JSP标记,就形成了JSP文件。 JSP技术的强势在于:1、一次编写,到处运行。在更换系统时,代码不需要做任何

36、修改。2、系统的多平台支持。根本上可以在所有平台上的任意环境下开发,在任意环境中进行系统部署,在任意环境中扩展。3、强大的可伸缩性。通过小小的jar文件运行servlet/JSP,到由多台效劳器进行集群和负载均衡,到多台Application进行事务处理,一台效劳器到无数台效劳器,JSP表现了强大的可伸缩性。4、多样化和功能强大的开发工具支持,常用的编辑工具有Dreamweaver和MyEclipse等。 MySQLMySQL可以称得上是目前运行速度最快的SQL语言数据库,除了具有许多其他数据库所不具备的功能和选择外,MySQL数据库是一种完全免费的产品,用户可以直接从网上下载数据库,用于个人

37、和商业用途,而不必支付任何费用。 JDBC技术数据库管理是每个应用系统开发过程中不得不考虑的问题,目前主流的数据库有Oracle、SqlServer、MySql等。不管使用何种技术,都离不开JDBC技术的支持。JDBC的全称是Java DataBases Connectivity standard,即Java数据库连接,是一种数据库通用接口采用的主流技术。其定义了用来访问数据库源的标准Java类库,通过它使用一种标准方法,就能够方便的访问数据库资源。所以,JDBC又是一种标准,其目标是使应用程序开发人员通过它连接任何提供JDBC驱动程序的数据库系统,这样就使得程序员无需对某种数据库有过多的了解

38、,大大加快了开发过程。有了JDBC,向各种数据库发送SQL语句就是一件再简单不过的事了。换言之,有了JDBC,就不必为访问数据库A专门再写一个程序,又为访问数据库B专门写一个程序。所以,JDBC为Java应用程序与各种不同数据库之间进行对话提供了一个标准的方法,这也是Java语言“一次编写,到处运行的优势。4 数据库设计4.1 数据库分析数据库的设计,在应用系统的开发中起着举足轻重的作用。一个合理、有效的数据库设计不仅是做好系统的保证,也能降低程序的复杂性,使程序的开发过程变得更加容易。本系统是一个中型的BBS论坛系统,考虑到用户信息量和用户需求等问题,决定采用MySQl作为工程用数据库。My

39、SQl是一个中小关系型数据管理系统,最初由MySQL AB公司发布。MySQL由于体积小、速度快、总体拥有本钱低等原因,成为许多中小型网站数据库的首选。MySQL可以称得上是目前运行速度最快的SQL语言数据库,此外,MySQL数据库是一种完全免费的产品,用户可以直接从网上下载数据库,用于个人和商业用途,而不必支付任何费用。4.2 数据库概念设计ER图是实体联系图,E-R模型是对现实世界的一种抽象。其组成局部主要包括实体、联系和属性。使用这三种成分,我们可以很好的抽象出现实世界中的个体,并通过彼此之间的联系来抽象整个世界。E-R模型是设计数据库时经常使用到的方法。经过分析,本系统创立了五张数据库

40、表,即帖子表article、版块表edit、用户等级表grade、用户表user和管理员表admin。下面划分出本系统所使用的数据库实体,它们分别为用户User和帖子(Article)以及管理员admin。以下是帖子、用户和管理员的实体图: SKIPIF 1 0 图4-1 帖子实体图 SKIPIF 1 0 图4-2 用户实体表 SKIPIF 1 0 图4-3 实体管理员表系统的E-R图如下: SKIPIF 1 0 图4-4 系统E-R图4.3 数据库的逻辑设计根据数据库的概念设计,可以创立与实体对应的数据表。1、用户表User下面是对表User的具体设计表4-1 user字段名属性约束意义1u

41、serNamevarchar(30)primary key用户名2passwordvarchar(25)无密码3rePasswordvarchar(25)无确认密码4mainUrlvarchar(50)无邮箱地址5loginTimedatetime无注册时间6gradeNointForeign key用户等级说明:*userName是注册用户的用户名,为User表的主键。 *password是用户密码,为用户登录时用。 *rePassword是确认密码,与用户密码对应。 *mailUrl是用户的邮箱地址,通过它,我们可以与之通过邮件通信。 *loginTime表示用户注册的时间。*gradeN

42、o表示用户的等级,与登记表grade中的gradeId相关联,组成表的外键。共分为四个等级:菜鸟、列兵、星级标兵和士官。 *在注册过程中,password和rePassword必须一致,否那么无法成功注册。2、管理员表admin表4-2 admin字段名属性约束意义1adminIdintprimary key管理员编号2adminNamevarchar(25)无管理员姓名3passwordvarchar(25)无密码4adminTimedatetime无创立时间3、帖子表Article下面是对表Article的具体设计表4-3 article字段名属性约束意义1idintprimary key

43、帖子id2pid int无父亲id3rootidint无根id4editNoInt无所属版块5titlevarchar(30)无标题6conttext无内容7pdatedatetime无发帖时间8writervarchar(30)foreign key作者9viewCountint无帖子查看量10replyCountint无帖子回复量11isleafint无判断帖子是否为叶子节点12isEssenceint无判断帖子是否为精华帖说明:*id是帖子的编号,为本表的主键。 *pid是父亲id的编号,表示被回复的帖子id号。 *rootid表示根贴的id号,表示最初发起主题的帖子id号。 *edit

44、No表示帖子所属的板块号,每个版块的帖子分版块区别显示。 *title表示帖子的主题。 *cont表示帖子的内容。 *pdate表示发帖的具体时间。 *writer表示发帖的作者,此外键对应user表中userName字段。 *viewCount表示帖子的查看量。 *replyCount表示帖子的回复量。 *isLeaf判断帖子是否为叶子节点,值为1时表示为非叶子节点;为0时表示为叶子节点。 *isEssence判断帖子是否为精华帖,值为1是表示是精华帖;反之,那么不是。 4、用户等级表grade图4-4 grade字段名属性约束意义1gradeIdintprimary key等级编号2gra

45、deContvarchar(25)无等级内容 5、版块类别表edit图4-5 edit字段名属性约束意义1editedintprimary key版块编号2editNamevarchar(25)无版块内容 SKIPIF 1 0 图4-5 数据库模型图5 系统详细设计与实现5.1 前台设计系统的前台,即是直接面向用户的所有页面。因为前台的功能模块较多,而各个模块的实现过程都是类似的,所以对于系统前台的介绍,只是做有选择的系统重点设计介绍。 前台页面设计与实现本系统的所有页面都采用了统一的简化页面框架,包括页头和内容显示区。前台首页的页面运行结果已在前文中出现过,此处不再累述。下面主要介绍前台首页

46、面index.jsp的具体实现。由于论坛是以主题分版块展示的,下面以其中一个板块页面做详细介绍。局部主要代码如下:%List articles = new ArrayList();Connection conn = DB.getConn();/创立与数据库的连结Statement stmt = DB.createStmt(conn);/通过连结创立Statement对象String sql = select * from article; ResultSet rs = DB.executeQuery(stmt, sql );/执行sql语句,并返回结果集while (rs.next() Art

47、icle a = new Article();a.initFromRs(rs);articles.add(a);/记录总查看量int totalViewNum=0;/记录帖子总数int totalArticleNum=0;/*查询出帖子的总查看量*/for (Iterator it = articles.iterator(); it.hasNext();) Article a = it.next();totalViewNum+=a.getViewCount();/*查询出帖子的总回复量*/String sql1=select count(id) from article where pid=0

48、;ResultSet rs1 = DB.executeQuery(stmt, sql1);rs1.next();totalArticleNum = rs1.getInt(1);/*查询出最后的发帖作者*/String sql2=select * from article order by pdate desc;ResultSet rs2 = DB.executeQuery(stmt, sql2);while (rs2.next() Article a = new Article();a.initFromRs(rs2);articles.add(a);Iterator it1 = article

49、s.iterator();Article a1=it1.next();String lastWriter=a1.getWriter();DB.close(rs2);DB.close(rs1);DB.close(rs);DB.close(stmt);DB.close(conn);%以上的语句实现的有三个功能:1、查询出帖子的总查看量;2、查询出帖子的总回复量;3、查询出最后的发帖作者。这些都是对整个板块的总体统计,是对板块信息的最直观的展现。 用户注册/登录、管理员登录在论坛首页,提供了三个登录、注册入口,包括:用户注册/登录、管理员登录;通过点击如下链接,进入到对应各个界面。普通用户注册 普通

50、用户登录 管理员登录入口1用户注册用户注册的网页文件对应的是“loginUser.jsp文件,在此页面下,非注册用户可以进行注册的操作。运行效果图如下:图5-1 用户注册界面用户完成注册后,注册的用户名和密码就被写入到用户表user。之后,会出现一个用户信息确认页面,以最终完成用户的注册。确认无误后,点击链接,页面就跳转到论坛首页,此时的用户身份还是“游客,之后可以通过登录改变用户身份状态。在用户注册的时候,如果用户输入的密码和重复密码不一致,会出现“密码和重复密码不一致的错误信息提示,然后页面返回到注册页面。如果用户所有待填项输入无误,那么进入用户信息确认页面。以下是用户信息确认页面的展示图

51、:图5-2 用户信息确认页面用户登录用户完成注册后,就可以进行用户登录的操作,用户登陆页面如下:图5-3 用户登录界面在用户登录时,如果用户名或密码输入有误,那么会出现“invalid username or password的错误信息提示,然后页面返回到登陆页面供用户修正输入继续登录。 论坛版块的展示下面以“青葱岁月区为例,来介绍论坛版块的展示操作。在论坛首页,通过链接版块链接,进入到特定版块的特定页面。“最初的梦想版块页面运行效果图5-4 “最初的梦想“版块页面运行效果图从运行效果来看,此处运用了分页技术。分页技术实现的关键点依赖于一条重要的sql语句,具体如下:Select * from

52、 Table order by 参数1 limit startPage+, endPage;其中,Table是所要查询的表名称; startPage是起始页面; endPage是结束页面。执行的效果是查询出排序结果的制定起始行到指定结束行的所有页面。板块页面的展示是通过一个循环来实现的,在循环的根底上,为页面实现了一个优化:奇偶行以不同的显示效果展现。优化的方式主要向jsp页面导入class文件,在导入的时候,针对行数的奇偶性采取不同的对应操作。主要代码如下:%int lineNum = 0;for(Iterator it = articles.iterator(); it.hasNext()

53、;) Article a = it.next();String classStr = lineNum % 2 = 0 ? jive-even : jive-odd; /区分奇偶行,以不同效果区分显示%实现代码具体如下:代码段1:获取制定局部行的查询结果%final int PAGE_SIZE = 8; /每页显示的主题数目int pageNo = 1; /记录当前页数String strPageNo = request.getParameter(pageNo);if (strPageNo != null & !strPageNo.trim().equals() try pageNo = Int

54、eger.parseInt(strPageNo); catch (NumberFormatException e) pageNo = 1;if (pageNo = 0) pageNo = 1;int totalPages = 0; /记录符合要求的总主题页数List articles = new ArrayList();Connection conn = DB.getConn();Statement stmtCount = DB.createStmt(conn);ResultSet rsCount = DB.executeQuery(stmtCount,select count(*) from

55、 article where pid=0);rsCount.next();int totalRecords = rsCount.getInt(1);totalPages = (totalRecords + PAGE_SIZE - 1) / PAGE_SIZE;if (pageNo totalPages) pageNo = totalPages;Statement stmt = DB.createStmt(conn);int startPos = (pageNo - 1) * PAGE_SIZE;String sql = select * from article where pid=0 ord

56、er by pdate desc limit + startPos + , + PAGE_SIZE; ResultSet rs = DB.executeQuery(stmt, sql);while (rs.next() Article a = new Article();a.initFromRs(rs);articles.add(a);代码段2:将获取的结果根据行号的奇偶性分页展示:%int lineNum = 0;for (Iterator it = articles.iterator(); it.hasNext();) Article a = it.next();String classS

57、tr = lineNum % 2 = 0 ? jive-even : jive-odd; /区分奇偶行,以不同效果区分显示TR class=静态局部 发表新主题在论坛版块展示页面中,注册用户可以执行发表新主题的操作,对游客而言,那么不能实现此功能。这个功能是通过区分用户登录方式的不同而实现的,非注册用户点击“发表新主题的连接后会出现一个错误提示及跳转页面,以提示用户目前处于“非登录用户状态,无权发表新主题。已注册用户成功登陆后,那么可以进行发表新主题的操作,运行页面效果如下:图5-5 发表主题页面成功发表后,所发表主题会显示在论坛版块展示页面下图5-4。 搜索主题和发表新主题不同,所有的用户都

58、能够执行搜索主题的操作。在论坛版块展示页面点击“搜索主题“链接,进入到搜索主题页面。图5-6 搜索页面图5-7 搜索结果页面 查看及回复主题点击主题链接,进入主题查看页面。图5-8 主题显示页面在此页面,用户点击“回复按钮,即可进入到回复主题页面,运行效果如下。图5-9 主题回复页面在此,需要说明的是:为了美化回复的效果,在此参加了Fckeditor网页编辑器。具体实现步骤为:首先从网上下载一个Fckeditor,将解压文件拷贝到工程“WebRoot目录下,然后到压缩包解压文件“FCKeditor2.6.4 ”下的路径:“fckeditor_sampleshtmlsample02.html下,

59、翻开静态页“sample02.html,然后将其代码复制、粘贴到回复页面“reply.jsp。修改即可。修改后的代码段如下:window.onload = function()/ Automatically calculates the editor base path based on the _samples directory./ This is usefull only for these samples. A real application should use something like this:/ oFCKeditor.BasePath = /fckeditor/ ;/ /

60、fckeditor/ is the default value.var sBasePath = ;var oFCKeditor = new FCKeditor( cont ) ;oFCKeditor.BasePath= sBasePath ;oFCKeditor.ReplaceTextarea() ;点击提交,回复内容会显示在上级页面。图5-10 回复后主题显示页面5.1.7 优化主题的一些小设计1信息统计1、帖子查看量与回复量的统计如图5-4所示,在论坛版块的展示页面,会有“查看、“回复两个代表帖子被查看量和被回复量的信息提示,这个是通过对article表设置的两个冗余变量“viewCoun

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论