




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、本科生毕业论文(设计)基于 jsp 的财大家园 bbs 论坛的设计与实现姓名学号专业指导教师2011 年 05 月 20 日i摘要随着网络应用的兴起,人们交流的方式也发生了翻天覆地的变化。网络聊天、网络视频和邮箱系统等网络应用的出现正在改变着人们彼此之间沟通、交流的方式。此外,为了满足人们在某一特定主题下的知识获取和信息发布,出现了在线网络论坛。各种各样的主题论坛几乎囊括了人们生活的每个角落。人们根据自己的专业特长和兴趣爱好在论坛上提出自己的问题,即提出主题。而后其他人根据主题内容可以发表自己的意见和看法,即回复主题。一千个人有一千个哈姆雷特,论坛集大家之所长,所感,为每一个用户提供了丰富的知
2、识矿藏。论坛是一个让人足不出户即可了解外界世界,了解他人所想的工具。在人们生活节奏逐步加快的今天,必有其存在的现实意义。正是基于这样的认识,开发了此 bbs 论坛系统。除了提供基本的看帖、发帖、回帖、搜帖的功能,针对管理员用户系统还提供了用户管理和帖子管理的操作。目的是基于现实,为用户提供一个模拟的网上交流环境。方便大家的沟通交流,丰富人们的娱乐文化生活。在论文的篇章上,本论文从系统分析、系统整体设计、数据库设计、系统详细设计与实现几个方面对系统的开发过程作了详细的介绍,旨在全面地呈现系统由最初设计到最终定型的各个阶段,便于大家对系统有一个更好的把握和认识。系统的具体实现细节则在论文的系统详细
3、设计与实现一章给出了具体的阐述,各个功能版块的展示也包含在其中,能够直观地看到系统运行后的演示效果。其间夹杂着部分主要代码的辅助说明,便于从底层查看系统的最终实现。关键词:jsp;网上论坛;模拟社区;在线交流iiabstractwith the development of the internet,the way of peoples communication has undergoned enormous changes.web chat,online video and mailbox system are changing the way of peoples mutual comm
4、unication.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 forum,named posting;then,other people can
5、 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,supplying very abundant resources for us.by
6、 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 cognition.besides the fundamental function
7、,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 communication more convenient,to rich peoples live
8、s 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 present every progress from initial design to
9、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 functional module is added to this chapter,so
10、 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 communicationiii目录1 引言 .12 系统分析 .22.1 需求分析 .22.1.1 功能性需求 .22.1.2
11、非功能性需求 .62.2 可行性分析 .63 系统总体设计 .83.1 系统目标 .83.2 系统功能划分 .83.2.1 前台功能结构 .83.2.2 后台功能结构 .93.3 系统开发环境 .103.3.1 开发环境 .103.3.2 系统平台体系结构的选择.113.3.3 javascript 语言简介及特点 .113.3.4 jsp 概述.113.3.5 mysql .123.3.6 jdbc 技术.124 数据库设计 .134.1 数据库分析 .134.2 数据库概念设计 .134.3 数据库的逻辑设计 .155 系统详细设计与实现 .195.1 前台设计 .195.1.1 前台页面
12、设计与实现 .195.1.2 用户注册/登录、管理员登录.205.1.3 论坛版块的展示 .235.1.4 发表新主题 .255.1.5 搜索主题 .265.1.6 查看及回复主题 .27iv5.1.7 优化主题的一些小设计.295.2 后台设计 .325.2.1 管理员登录 .325.2.2 修改和删除主题 .325.2.3 用户信息管理 .33结束语 .36参考文献 .3811 引言网络的兴起与发展,极大地改变了人们的思维和行为习惯。基于网络的应用也层出不穷,论坛就是最早兴起的应用之一。作为一种传递消息的方式,最早的 bbs 的作用是公布股市的即时消息,而随着时代的发展,现在的 bbs 的
13、内容已达到无所不包的程度。小到生活趣事,大到专业知识,各种各样的主题论坛让人眼花缭乱。论坛网页的形式也由最初的静态页面发展到现在的动态页面,更好的实现了用户之间的交互。把 bbs 作为一种对外的展示窗口,进行内外信息交流,已然成为大众的广泛需要。财大家园论坛就是通过动态 web 开发技术和数据库技术实现的以财大学生与老师为主要服务对象的一个基于现实环境之上的一个网上论坛,力求创造出一个模拟的网上校园虚拟环境。财大人可以足不出户,在论坛上共享一切值得分享的主题,方便交流;外界人士也可以通过此论坛更好的了解财大学生的焦点和兴趣所在,省时省力。在论坛的设计上,增加了版块类别。不同的版块区域所包含的讨
14、论主题会有所区分,这样的话,就能以主题不同,分版块分主题地记录了你我他的点滴心声。此论坛是基于 b/s 模式的一种 jsp 网页论坛的设计与实现,力求做到界面友好、简单和易于操作。论文从几个大的方面来对系统的开发做出了阐述。在系统分析一章从需求分析和可行性分析两方面来做具体阐述;系统整体设计则从系统目标、系统功能划分和系统开发环境三大方面说明,结合后面的系统详细设计与实现一章完成对系统从整体到细节的全方位的理解。数据库设计单独设一章,对数据库的分析、概念设计和逻辑设计给出了详细说明。系统的详细设计与实现一章对系统的各个功能模块的设计与实现做了详细说明,分为前台设计和后台设计两个部分。其中,前台
15、设计几乎囊括了整个设计与实现的大半部分。在所有章节中,系统总体设计、数据库设计和系统详细设计与实现三章是主要内容。论文尽可能的将与系统相关的内容解释清楚,目的就是将系统的整个开发流程展示给大家。22 系统分析2 2. .1 1 需需求求分分析析2.1.1 功能性需求开发 bbs 论坛系统的目的是为了提供一个大家交流的平台,供人们发表看法、探讨经验、讨论问题。因此,bbs 论坛系统的最基本的功能是发表主题,其次是其它人员根据主题发表自己的看法,即回复主题。考虑到现实情况,并不是每一个访问的游客都具有发表主题的权利,所以必须用一个身份绑定用户,赋予其发表主题的权利,这就需要实现用户注册及登录的功能
16、。每一个系统都需要管理员这个特殊群体的存在,所以也需要实现管理员登陆的功能。管理员区别于一般用户的地方在于,管理员往往具有更高的权限,有权对用户信息和帖子内容作出某些“增删改查”的操作,所以,针对管理员,系统应该实现删除和修改帖子以及对用户的管理等功能,以实现管理员对社区的管理 。考虑到社区访问量会很大,用户发表的帖子的数量自然很多,在浩瀚的帖子海洋中,如何才能查看自己感兴趣的帖子成为了一个不得不考虑的问题。所以,系统还应该实现搜索帖子的功能,用模糊查询的方法,对社区的帖子进行筛检的工作。本系统针对用户还实现了一个特殊的功能,即邮件发送。如果某个用户对其他的用户感兴趣,那么可以通过将邮件发送到
17、指定用户注册时所填写的邮箱地址,这样的话,就能够实现即时通讯的功能。综上所述,bbs 论坛系统的功能就可以进行如下划分:1、前台部分主要涉及系统前台,即用户所能看到的网页所涉及到的功能。主要包括:用户注册/登录,发表新主题,回复主题,查看主题内容,搜索主题,邮件发送。2、后台管理部分主要是数据库的操作,针对系统管理员设置的一些功能。主要包括:管理员登录,删除与修改主题和用户信息管理。3 网网络络论论坛坛 数数据据库库 功功能能 前台模块 后台模块 会员注册 会员登录 邮件发送 搜索热门贴 管理员登录 跟帖发帖 帖子管理 用户管理 图 2-1 系系统统功功能能介介绍绍数据库部分,本系统新建了系统
18、用数据库 bbs,并在其下创建了五张表:user(用户表)、article(主题表)、admin(管理员表)、grade(用户等级表)和 edit(版块类别)。本系统在设计之初,为简单起见,欲暂不考虑系统管理员的设置,默认此系统只有一个管理员账户,用户名和密码均为“admin”。但这种做法在现实生活中是很难满足实际需求的。所以,最终创建了管理员表 admin,以实现对管理员信息的统一存储和管理。理论上应该有四个业务角色:游客、用户、管理员以及帖子。系统的用例图如下:4管理员发布主题回复主题删除主题修改主题搜索主题用户游客查看主题用户管理帖子管理图 2-2 系系统统用用例例图图从用例图中我们可以
19、看出,游客的权限最低,只能查看、回复和搜索主题;用户的权限居中,能够发布、回复、搜索和查看主题;管理员的权限最高,除了能够实现用户的所有功能,还能够修改和删除主题,并且能够对用户信息进行管理,具有行使系统所能够提供的一切权利。说明:用户和游客(非用户)的身份区别主要通过“用户注册”的功能实现,系统通过 sql 语句将注册用户信息保存到 user 表中,用户登录时查询 user 表,并以返回结果的有无判断个人的真实身份。系统的顶层数据流图(dfd)如下:5管理员admin用户user财大家园bbs论坛用户个人信息发布主题及内容管理员个人信息搜索关键字回复主题及内容修改后的帖子主题及信息搜索关键字
20、删除帖子id号数据库bbs用户信息帖子主题及内容反馈信息(用户账户信息、帖子信息)被删除或修改的用户个人信息图 2-3 顶顶层层数数据据流流图图(d df fd d)用户user管理员adminuser表用户个人信息管理员及用户登录反馈已注册用户信息查看/发布/回复主题主题信息删除/修改主题反馈管理员账户信息article表主题信息主题修改信息搜索主题搜索关键字反馈信息反馈信息管理员账户用户管理管理后的用户信息欲修改或删除的用户信息图 2-4 一一层层数数据据流流图图62.1.2 非功能性需求1平台限制。本系统是在 window xp 环境下开发,对系统没有过高的其它要求。2服务器支持。本系统
21、是基于 b/s 模式下的论坛系统,采用的服务器是 tomcat 7.0.5 版本。3数据库支持。本系统采用的数据库是 mysql 5.1 版本,同类型或更高级别的数据库管理软件都能适用。4基于 myeclipse 平台下开发。2 2. .2 2 可可行行性性分分析析需求分析回答的是“做什么,不做什么”的问题,而可行性分析回答的则是“做,还是不做”的问题。可行性分析是在调查分析的基础上,针对新系统的开发是否具有实用性和可能性,对新系统的开发从经济、技术、社会环境和人等发面进行分析和研究。可行性分析往往能够对决策者提供有价值的依据,以避免投资失误,保证新系统的开发成功。联想集团领导人柳传志2006
22、曾说:“没钱赚的事我们不干;有钱赚但投不起钱的事不干;有钱赚也投的起钱但没有可靠的人选,这样的事也不干。”可见可行性分析的重要性。(1)、技术可行性技术上的可行性分析主要指在现有可用的技术基础上,是否能够顺利完成新系统的开发工作。从硬件方面来看,计算机硬件的更新速度正在不断提高,与此同时,系统的稳定性也在不断加强。容量越来越大,性能越来越强,而价钱却越来越低。所以,仅从硬件方面来看,完全能够提供满意的系统开发环境。从软件方面来看,该 bbs 论坛采用了流行的动态网页设计技术(jsp)和当前流行的 b/s(浏览器/服务器)设计模式进行开发。b/s 模式本身是随着 internet 技术的兴起,对
23、传统 c/s 结构的一种变化或者改进结构,具有很多传统结构所不具有的优点。先进的 internet/intranet(国际互联网/企业内部互联网)技术,保证了 b/s 结构的强有力态势,将 b/s 结构的应用转变成为一种特定时代条件下的大势所趋。本系统的服务器采用的是 tomcat 7.0.5 版本,tomcat 发展至今,技术上自不必说,性能也很稳定,完全能够担负服务器的重任,辅助完成中小型应用的成功开发。数据库服务器选用的是 mysql 5.1 版本,是目前运行速度最快的 sql 语言数据库,能够同时处理大量数据,并保证数据的完整性。它的灵活性、易用性和安全性为新系统的开发提供了一个良好的
24、环境。(2)、经济可行性7经济可行性所作的工作主要是对项目整体的经济效益进行评估,本系统的目的是模拟一个网上交流的平台,供用户在社区交流经验、探讨问题。但实际只是用于个人毕业设计,不涉及商业上的运作,纯粹模拟,故不存在资金上的流动,也不存在经济不可行的问题。(3)、社会可行性随着 internet 技术的迅猛发展,bbs 论坛已成为越来越多网民彼此交流,获取信息的重要途径。在论坛上,人们可以发表自己一切感兴趣的话题,也可以根据别人所发的主题发表一些自己的看法,心得体会等。通过 bbs 论坛获取信息及发表主题已成为一种时尚的生活方式。bbs 论坛缩短了人们之间的距离,在不知不觉间,早已成为人们网
25、上生活的必备工具,可见论坛存在的必要性和发展的前景。83 系统总体设计3 3. .1 1 系系统统目目标标基于 bbs 论坛在现实生活的实际应用,本系统的系统目标是提供一个以现实环境为基础的网上模拟交流平台,通过它,人们可以不必拘泥于空间和时间上的限制,方便交流,畅所欲言,同时也能够更加便利的看到周围人的想法,观点,最大化的丰富人们的视野和生活,让人随时都能身在其中,随时也能置身事外。3 3. .2 2 系系统统功功能能划划分分3.2.1 前台功能结构系统的前台初始页面如下,登录地址为“http:/localhost:8080/bbs”:图 3-1 财财大大家家园园网网首首页页当用户登录到论坛
26、首页时,其默认的身份就是游客,只能查看、回复、搜索帖子,而不能执行发帖等其它操作。如果用户为非注册用户,则其可以进行注册以获得一个登录身份。如果用户为已注册用户,则其可以直接进行登录,然后以注册用户的身份执行诸如发表新主题、查看新主题、回复主题、搜索主题等一系列操作。前台系统流程图具体如下:9论坛首页匿名身份登录是注册用户吗?用户登录用户注册ny登录成功n注册成功n论坛首页yy图 3-2 前前台台系系统统流流程程图图此时,用户已经具有了一种身份,此后用户可以以此种身份执行诸如发表新主题、查看主题、搜索主题、回复主题等操作。3.2.2 后台功能结构后台功能主要是针对管理员而设置的,用户以管理员的
27、身份登陆后,就能执行后台管理的操作,具体到此 bbs 论坛,主要是指删除和修改主题以及对用户信息的管理。10后台系统流程图如下:论坛首页匿名身份登录是管理员吗?管理员登录y登录成功nn论坛首页y 图 3-3 后后台台系系统统流流程程图图3 3. .3 3 系系统统开开发发环环境境3.3.1 开发环境在建立工程前,需要首先搭建开发环境。此 bbs 论坛系统的开发需要用到以下几种工具,故开发前需要进行相应的下载和安装:开发平台:myeclipse 9.0m2web 服务器:tomcat 7.0.5数据库服务器:mysql 5.1java 开发工具:jdk 1.6.011辅助工具:dreamweav
28、er cs43.3.2 系统平台体系结构的选择在系统开发领域内,目前存在两大主流系统平台的开发结构,一种是 c/s 结构,而另一种是 b/s 结构。c/s 结构,即大家熟知的客户端/服务器结构,是一种应用较早,相对传统的开发模式。通过它,可以充分利用两端硬件环境的优势,将任务合理的分配到 client 端和 server 端,降低了系统的通讯开销。b/s 结构,即浏览器/服务器结构,是随着 internet 的兴起,对 c/s 结构的一种变化或者改进。在这种结构下,用户不需要借助于客户端软件,通过 www 浏览器,即可实现系统的全部既定功能。在这种模式下,一部分事务逻辑在前段实现,但是主要事务
29、逻辑在服务器端实现,大大简化了客户端电脑载荷,减轻了系统维护与升级的成本,从而降低了用户的整体成本。从开放程度来说,传统的 c/s 结构虽然采用的是开放模式,但这个开放性只是针对系统开发一级的,在特定的应用中,无论是客户端还是服务器端都还需要特定的软件支持。而 b/s 结构,是一次性到位的开发,应用此模式开发的系统,不同人员,在不同地点,以不同的接入方式(比如 lan、wan 等)访问并操作共同的数据库,能有效地保护数据平台和管理访问权限,服务器的数据库也很安全。特别是在 java 这样的跨平台语言出现之后,b/s 架构管理软件起来更是显得方便,快捷和高效。可以说,b/s 是乘着 intern
30、et 兴起的风而杨风远航的,是适应时代的产物。但是,b/s 也存在着自己的不足,比方说其在大量数据分析,实时控制应用方面就存在着需要改进的地方。综合考虑,本系统还是考虑使用当下流行的 b/s 结构作为系统的开发模式。3.3.3 javascript 语言简介及特点javascript 语言是 netscape 公司开发的一种脚本性语言(scripting language),或者称其为描述性语言。作为一种编程语言,其出现的使命就是为了适合动态网页制作的需要,颇具工具色彩。在静态网页 html 的基础上,使用 javascript 可以开发交互式web 网页,能够使网页和用户之间实现一种实时性的
31、、动态的、交互性的关系,使得网页包含更多活跃的元素和更加精彩内容。可以说,javascript 是专门为制作 web 网页而量身定做的一种简单的编程语言。javascript 是在客户机上执行的,其特点和功能主要是短小精悍,能够大大提高网页的浏览速度和交互能力。其特有的工具色彩让其在动态网页的开发中找到了用武之地。3.3.4 jsp 概述jsp 是由 sun 公司在 java 语言的基础上开发出来的一种动态网页制作技术,其将标记插入到页面中,从而使网页中的静态部分和动态部分分离开来。jsp 是类似12asp 的一种技术,在传统的静态网页 html 文件插入 java 程序段和 jsp 标记,就
32、形成了jsp 文件。 jsp 技术的强势在于:1、一次编写,到处运行。在更换系统时,代码不需要做任何修改。2、系统的多平台支持。基本上可以在所有平台上的任意环境下开发,在任意环境中进行系统部署,在任意环境中扩展。3、强大的可伸缩性。通过小小的 jar 文件运行 servlet/jsp,到由多台服务器进行集群和负载均衡,到多台 application 进行事务处理,一台服务器到无数台服务器,jsp 表现了强大的可伸缩性。4、多样化和功能强大的开发工具支持,常用的编辑工具有 dreamweaver 和myeclipse 等。3.3.5 mysqlmysql 可以称得上是目前运行速度最快的 sql
33、语言数据库,除了具有许多其他数据库所不具备的功能和选择外,mysql 数据库是一种完全免费的产品,用户可以直接从网上下载数据库,用于个人和商业用途,而不必支付任何费用。3.3.6 jdbc 技术数据库管理是每个应用系统开发过程中不得不考虑的问题,目前主流的数据库有oracle、sqlserver、mysql 等。不管使用何种技术,都离不开 jdbc 技术的支持。jdbc的全称是 java databases connectivity standard,即 java 数据库连接,是一种数据库通用接口采用的主流技术。其定义了用来访问数据库源的标准 java 类库,通过它使用一种标准方法,就能够方便
34、的访问数据库资源。所以,jdbc 又是一种规范,其目标是使应用程序开发人员通过它连接任何提供 jdbc 驱动程序的数据库系统,这样就使得程序员无需对某种数据库有过多的了解,大大加快了开发过程。有了 jdbc,向各种数据库发送 sql 语句就是一件再简单不过的事了。换言之,有了 jdbc,就不必为访问数据库 a 专门再写一个程序,又为访问数据库 b 专门写一个程序。所以,jdbc 为 java 应用程序与各种不同数据库之间进行对话提供了一个标准的方法,这也是 java 语言“一次编写,到处运行”的优势。134 数据库设计4 4. .1 1 数数据据库库分分析析数据库的设计,在应用系统的开发中起着
35、举足轻重的作用。一个合理、有效的数据库设计不仅是做好系统的保证,也能降低程序的复杂性,使程序的开发过程变得更加容易。本系统是一个中型的 bbs 论坛系统,考虑到用户信息量和用户需求等问题,决定采用 mysql 作为项目用数据库。mysql 是一个中小关系型数据管理系统,最初由 mysql ab 公司发布。mysql 由于体积小、速度快、总体拥有成本低等原因,成为许多中小型网站数据库的首选。mysql 可以称得上是目前运行速度最快的 sql 语言数据库,此外,mysql 数据库是一种完全免费的产品,用户可以直接从网上下载数据库,用于个人和商业用途,而不必支付任何费用。4 4. .2 2 数数据据
36、库库概概念念设设计计er 图是实体联系图,e-r 模型是对现实世界的一种抽象。其组成部分主要包括实体、联系和属性。使用这三种成分,我们可以很好的抽象出现实世界中的个体,并通过彼此之间的联系来抽象整个世界。e-r 模型是设计数据库时经常使用到的方法。经过分析,本系统创建了五张数据库表,即帖子表(article)、版块表(edit)、用户等级表(grade)、用户表(user)和管理员表(admin)。下面划分出本系统所使用的数据库实体,它们分别为用户(user)和帖子(article)以及管理员(admin)。以下是帖子、用户和管理员的实体图:14帖子帖子id父亲帖id根贴id帖子回复量帖子作者
37、帖子内容帖子主题叶子节点判断标记帖子发表时间帖子查看量精华帖判断标记图 4-1 帖帖子子实实体体图图用户注册时间密码邮箱地址重复密码用户名用户等级图 4-2 用用户户实实体体表表管理员管理员姓名账号创建时间密码管理员编号图 4-3 实实体体管管理理员员表表系统的 e-r 图如下:15管理员版块类别信息用户等级帖子用户管理属于属于发帖1n1n1111图 4-4 系系统统 e e- -r r 图图4 4. .3 3 数数据据库库的的逻逻辑辑设设计计根据数据库的概念设计,可以创建与实体对应的数据表。1、用户表(user)下面是对表 user 的具体设计表 4-1 user字段名属性约束意义1user
38、namevarchar(30)primary key用户名2passwordvarchar(25)无密码3repasswordvarchar(25)无确认密码4mainurlvarchar(50)无邮箱地址5logintimedatetime无注册时间6gradenointforeign key用户等级说明:*username 是注册用户的用户名,为 user 表的主键。 *password 是用户密码,为用户登录时用。 *repassword 是确认密码,与用户密码对应。 *mailurl 是用户的邮箱地址,通过它,我们可以与之通过邮件通信。 *logintime 表示用户注册的时间。16*
39、gradeno 表示用户的等级,与登记表(grade)中的 gradeid 相关联,组成表的外键。共分为四个等级:菜鸟、列兵、星级标兵和士官。 *在注册过程中,password 和 repassword 必须一致,否则无法成功注册。2、管理员表(admin)表 4-2 admin字段名属性约束意义1adminidintprimary key管理员编号2adminnamevarchar(25)无管理员姓名3passwordvarchar(25)无密码4admintimedatetime无创建时间3、帖子表(article)下面是对表 article 的具体设计表 4-3 article字段名属性
40、约束意义1idintprimary key帖子 id2pid int无父亲 id3rootidint无根 id4editnoint无所属版块5titlevarchar(30)无标题6conttext无内容7pdatedatetime无发帖时间8writervarchar(30)foreign key作者9viewcountint无帖子查看量10replycountint无帖子回复量11isleafint无判断帖子是否为叶子节点12isessenceint无判断帖子是否为精华帖说明:*id 是帖子的编号,为本表的主键。 *pid 是父亲 id 的编号,表示被回复的帖子 id 号。 *rootid
41、 表示根贴的 id 号,表示最初发起主题的帖子 id 号。17 *editno 表示帖子所属的板块号,每个版块的帖子分版块区别显示。 *title 表示帖子的主题。 *cont 表示帖子的内容。 *pdate 表示发帖的具体时间。 *writer 表示发帖的作者,此外键对应 user 表中 username 字段。 *viewcount 表示帖子的查看量。 *replycount 表示帖子的回复量。 *isleaf 判断帖子是否为叶子节点,值为 1 时表示为非叶子节点;为 0 时表示为叶子节点。 *isessence 判断帖子是否为精华帖,值为 1 是表示是精华帖;反之,则不是。 4、用户等级
42、表(grade)图 4-4 grade字段名属性约束意义1gradeidintprimary key等级编号2gradecontvarchar(25)无等级内容 5、版块类别表(edit)图 4-5 edit字段名属性约束意义1editedintprimary key版块编号2editnamevarchar(25)无版块内容articlepkid pid rootid editno title cont pdate viewcount replycount writer isessence isleafuserpkusername password repassword logintime g
43、radenogradepkgradeid gradeconteditpkeditid editname图 4-5 数数据据库库模模型型图图185 系统详细设计与实现5 5. .1 1 前前台台设设计计系统的前台,即是直接面向用户的所有页面。因为前台的功能模块较多,而各个模块的实现过程都是类似的,所以对于系统前台的介绍,只是做有选择的系统重点设计介绍。5.1.1 前台页面设计与实现本系统的所有页面都采用了统一的简化页面框架,包括页头和内容显示区。前台首页的页面运行结果已在前文中出现过,此处不再累述。下面主要介绍前台首页面 index.jsp 的具体实现。由于论坛是以主题分版块展示的,下面以其中一
44、个板块页面做详细介绍。部分主要代码如下:%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() article a = new article();a.initfromrs(r
45、s);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;resultset rs1 = db.executequery(stmt
46、, 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();19a.initfromrs(rs2);articles.add(a);iterator it1 = articles.iterator();article a1=it1.next();
47、string lastwriter=a1.getwriter();db.close(rs2);db.close(rs1);db.close(rs);db.close(stmt);db.close(conn);%以上的语句实现的有三个功能:1、查询出帖子的总查看量;2、查询出帖子的总回复量;3、查询出最后的发帖作者。这些都是对整个板块的总体统计,是对板块信息的最直观的展现。5.1.2 用户注册/登录、管理员登录在论坛首页,提供了三个登录、注册入口,包括:用户注册/登录、管理员登录;通过点击如下链接,进入到对应各个界面。普通用户注册 普通用户登录 管理员登录入口1用户注册用户注册的网页文件对应的是
48、“loginuser.jsp”文件,在此页面下,非注册用户可以进行注册的操作。运行效果图如下:20图 5-1 用用户户注注册册界界面面用户完成注册后,注册的用户名和密码就被写入到用户表 user。之后,会出现一个用户信息确认页面,以最终完成用户的注册。确认无误后,点击链接,页面就跳转到论坛首页,此时的用户身份还是“游客”,之后可以通过登录改变用户身份状态。在用户注册的时候,如果用户输入的密码和重复密码不一致,会出现“密码和重复密码不一致”的错误信息提示,然后页面返回到注册页面。如果用户所有待填项输入无误,则进入用户信息确认页面。以下是用户信息确认页面的展示图:21图 5-2 用用户户信信息息确
49、确认认页页面面1 用户登录用户完成注册后,就可以进行用户登录的操作,用户登陆页面如下:图 5-3 用用户户登登录录界界面面22在用户登录时,如果用户名或密码输入有误,则会出现“invalid username or password”的错误信息提示,然后页面返回到登陆页面供用户修正输入继续登录。5.1.3 论坛版块的展示下面以“青葱岁月”区为例,来介绍论坛版块的展示操作。在论坛首页,通过链接版块链接,进入到特定版块的特定页面。“最初的梦想”版块页面运行效果图 5-4 “最最初初的的梦梦想想“版版块块页页面面运运行行效效果果图图从运行效果来看,此处运用了分页技术。分页技术实现的关键点依赖于一条重
50、要的sql 语句,具体如下:select * from table order by 参数 1 limit startpage+”,” endpage;其中,table 是所要查询的表名称; startpage 是起始页面; endpage 是结束页面。23执行的效果是查询出排序结果的制定起始行到指定结束行的所有页面。板块页面的展示是通过一个循环来实现的,在循环的基础上,为页面实现了一个优化:奇偶行以不同的显示效果展现。优化的方式主要向 jsp 页面导入 class 文件,在导入的时候,针对行数的奇偶性采取不同的对应操作。主要代码如下:%int linenum = 0;for(iterator
51、 it = articles.iterator(); it.hasnext();) 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 &
52、 !strpageno.trim().equals() try pageno = integer.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
53、.executequery(stmtcount,select count(*) from 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
54、 sql = select * from article where pid=0 order by pdate desc limit + startpos + , + page_size; 24resultset 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.
55、hasnext();) article a = it.next();string classstr = linenum % 2 = 0 ? jive-even : jive-odd; /区分奇偶行,以不同效果区分显示tr class=静态部分5.1.4 发表新主题在论坛版块展示页面中,注册用户可以执行发表新主题的操作,对游客而言,则不能实现此功能。这个功能是通过区分用户登录方式的不同而实现的,非注册用户点击“发表新主题”的连接后会出现一个错误提示及跳转页面,以提示用户目前处于“非登录用户”状态,无权发表新主题。已注册用户成功登陆后,则可以进行发表新主题的操作,运行页面效果如下:图 5-5 发发
56、表表主主题题页页面面25成功发表后,所发表主题会显示在论坛版块展示页面下(图 5-4)。5.1.5 搜索主题和发表新主题不同,所有的用户都能够执行搜索主题的操作。在论坛版块展示页面点击“搜索主题“链接,进入到搜索主题页面。图 5-6 搜搜索索页页面面图 5-7 搜搜索索结结果果页页面面265.1.6 查看及回复主题点击主题链接,进入主题查看页面。图 5-8 主主题题显显示示页页面面在此页面,用户点击“回复”按钮,即可进入到回复主题页面,运行效果如下。27图 5-9 主主题题回回复复页页面面在此,需要说明的是:为了美化回复的效果,在此加入了 fckeditor 网页编辑器。具体实现步骤为:首先从
57、网上下载一个 fckeditor,将解压文件拷贝到工程“webroot”目录下,然后到压缩包解压文件“fckeditor2.6.4 ”下的路径:“fckeditor_sampleshtmlsample02.html”下,打开静态页“sample02.html”,然后将其代码复制、粘贴到回复页面“reply.jsp”。修改即可。修改后的代码段如下:window.onload = function()/ automatically calculates the editor base path based on the _samples directory./ this is usefull on
58、ly for these samples. a real application should use something like this:28/ ofckeditor.basepath = /fckeditor/ ;/ /fckeditor/ is the default value.var sbasepath = ;var ofckeditor = new fckeditor( cont ) ;ofckeditor.basepath= sbasepath ;ofckeditor.replacetextarea() ;点击提交,回复内容会显示在上级页面。图 5-10 回回复复后后主主题题
59、显显示示页页面面5.1.7 优化主题的一些小设计1信息统计29(1)、帖子查看量与回复量的统计如图 5-4 所示,在论坛版块的展示页面,会有“查看”、“回复”两个代表帖子被查看量和被回复量的信息提示,这个是通过对 article 表设置的两个冗余变量“viewcount”和“replycount”来实现的。在用户每次执行查看或者回复的时候,就对变量实行“+”的操作,从而达到统计次数的目的。那么,如何判断某个帖子被查看或被回复了呢?这个过程是通过设置 session 对象来实现的。在论坛板块页面(图 5-4)添加如下语句,以判断帖子的查看情况。session.setattribute(“isvi
60、ew”,”true”);对帖子的回复动作系统也做了相应操作,在回复信息提交后,系统添加了一个过渡页面“replydeal.jsp”,如果此页面被激活,并且所回复内容被顺利添加到数据库后,就执行 replycount+的操作;反之,则不作任何操作。(2)、版块内帖子查看量和帖子发表总量的统计在论坛首页,如图3-1所示,也会有两个统计信息的存在,即:帖子总查看量和帖子发表总量。有了帖子查看量的计算方法,帖子总查看量的获得则变得相当容易,只需一句 sql 语句即可实现。以下是具体的代码实现:list articles = new arraylist();connection conn = db.getcon
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年4月内蒙古哈伦能源集团有限责任公司招聘模拟试卷及答案详解(夺冠)
- 沧州市人民医院产科急诊超声考核
- 2025春季粤规院科技集团招聘考前自测高频考点模拟试题及完整答案详解1套
- 2025广东广州市增城区教育局招聘广州增城外国语实验中学教师10人(编制)模拟试卷及答案详解(名校卷)
- 张家口市人民医院个人持续学习与知识更新记录及测试
- 北京市人民医院组织架构与决策流程知识测试
- 重庆市人民医院儿童结石碎石技术考核
- 2025第二人民医院前庭康复治疗技能考核
- 2025湖南湘潭市市直学校人才引进45人考前自测高频考点模拟试题及答案详解1套
- 秦皇岛市人民医院故障识别处理考核
- 2024年中级注册安全工程师《安全生产法律法规》真题及答案
- ISO 22003-1:2022《食品安全-第 1 部分:食品安全管理体系 审核与认证机构要求》中文版(机翻)
- 外科学-第三十六章-阑尾疾病
- 八年级物理上册期中考试卷及答案【A4打印版】
- 防盗门订货合同范本
- 教科版科学四年级上册第一单元《声音》测试卷含答案(典型题)
- 《名著阅读 艾青诗选》核心素养课件1(第2课时)
- 人工智能在船舶工程中的应用展望
- 高中化学教师培训课件
- 锲而不舍成功从不言败主题班会课件
- 高血压员工免责协议范本
评论
0/150
提交评论