JSP(java)的BBS论坛的设计和实现_第1页
JSP(java)的BBS论坛的设计和实现_第2页
JSP(java)的BBS论坛的设计和实现_第3页
JSP(java)的BBS论坛的设计和实现_第4页
JSP(java)的BBS论坛的设计和实现_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

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

文档简介

本文格式为Word版,下载可任意编辑——JSP(java)的BBS论坛的设计和实现

辅助工具:DreamweaverCS43.3.2系统平台体系结构的选择

在系统开发领域内,目前存在两大主流系统平台的开发结构,一种是C/S结构,而另一种是B/S结构。C/S结构,即大家熟知的客户端/服务器结构,是一种应用较早,相对传统的开发模式。通过它,可以充分利用两端硬件环境的优势,将任务合理的分派到Client端和Server端,降低了系统的通讯开销。B/S结构,即浏览器/服务器结构,是随着Internet的兴起,对C/S结构的一种变化或者改进。在这种结构下,用户不需要借助于客户端软件,通过浏览器,即可实现系统的全部既定功能。在这种模式下,一部分事务规律在前段实现,但是主要事务规律在服务器端实现,大大简化了客户端电脑载荷,减轻了系统维护与升级的成本,从而降低了用户的整体成本。从开放程度来说,传统的C/S结构虽然采用的是开放模式,但这个开放性只是针对系统开发一级的,在特定的应用中,无论是客户端还是服务器端都还需要特定的软件支持。而B/S结构,是一次性到位的开发,应用此模式开发的系统,不同人员,在不同地点,以不同的接入方式(譬如LAN、WAN等)访问并操作共同的数据库,能有效地保护数据平台和管理访问权限,服务器的数据库也很安全。特别是在Java这样的跨平台语言出现之后,B/S架构管理软件起来更是显得便利,快捷和高效。可以说,B/S是乘着Internet兴起的风而杨风远航的,是适应时代的产物。但是,B/S也存在着自己的不足,比方说其在大量数据分析,实时控制应用方面就存在着需要改进的地方。综合考虑,本系统还是考虑使用当下流行的B/S结构作为系统的开发模式。3.3.3JavaScript语言简介及特点

JavaScript语言是Netscape公司开发的一种脚本性语言(Scriptinglanguage),或者称其为描述性语言。作为一种编程语言,其出现的使命就是为了适合动态网页制作的需要,颇具工具色调。在静态网页Html的基础上,使用JavaScript可以开发交互式Web网页,能够使网页和用户之间实现一种实时性的、动态的、交互性的关系,使得网页包含更多活跃的元素和更加精彩内容。可以说,JavaScript是专门为制作Web网页而量身定做的一种简单的编程语言。

JavaScript是在客户机上执行的,其特点和功能主要是短小精悍,能够大大提高网页的浏览速度和交互能力。其特有的工具色调让其在动态网页的开发中找到了用武之地。

3.3.4JSP概述

JSP是由Sun公司在Java语言的基础上开发出来的一种动态网页制作技术,其将标记插入到页面中,从而使网页中的静态部分和动态部分分开开来。JSP是类似

11

ASP的一种技术,在传统的静态网页HTML文件插入Java程序段和JSP标记,就形成了JSP文件。

JSP技术的强势在于:

1、一次编写,四处运行。在更换系统时,代码不需要做任何修改。

2、系统的多平台支持。基本上可以在所有平台上的任意环境下开发,在任意环境中进行系统部署,在任意环境中扩展。

3、强大的可伸缩性。通过小小的jar文件运行servlet/JSP,到由多台服务器进行集群和负载均衡,到多台Application进行事务处理,一台服务器到无数台服务器,JSP表现了强大的可伸缩性。

4、多样化和功能强大的开发工具支持,常用的编辑工具有Dreamweaver和MyEclipse等。3.3.5MySQL

MySQL可以称得上是目前运行速度最快的SQL语言数据库,除了具有大量其他数据库所不具备的功能和选择外,MySQL数据库是一种完全免费的产品,用户可以直接从网上下载数据库,用于个人和商业用途,而不必支付任何费用。3.3.6JDBC技术

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

有了JDBC,向各种数据库发送SQL语句就是一件再简单不过的事了。换言之,有了JDBC,就不必为访问数据库A专门再写一个程序,又为访问数据库B专门写一个程序。所以,JDBC为Java应用程序与各种不同数据库之间进行对话提供了一个标准的方法,这也是Java语言“一次编写,四处运行〞的优势。

12

4数据库设计

4.1数据库分析

数据库的设计,在应用系统的开发中起着举足轻重的作用。一个合理、有效的数据库设计不仅是做好系统的保证,也能降低程序的繁杂性,使程序的开发过程变得更加简单。

本系统是一个中型的BBS论坛系统,考虑到用户信息量和用户需求等问题,决定采用MySQl作为项目用数据库。

MySQl是一个中小关系型数据管理系统,最初由MySQLAB公司发布。MySQL由于体积小、速度快、总体拥有成本低等原因,成为大量中小型网站数据库的首选。MySQL可以称得上是目前运行速度最快的SQL语言数据库,此外,MySQL数据库是一种完全免费的产品,用户可以直接从网上下载数据库,用于个人和商业用途,而不必支付任何费用。

4.2数据库概念设计

ER图是实体联系图,E-R模型是对现实世界的一种抽象。其组成部分主要包括实体、联系和属性。使用这三种成分,我们可以很好的抽象出现实世界中的个体,并通过彼此之间的联系来抽象整个世界。E-R模型是设计数据库时经常使用到的方法。

经过分析,本系统创立了五张数据库表,即帖子表(article)、版块表(edit)、用户等级表(grade)、用户表(user)和管理员表(admin)。下面划分出本系统所使用的数据库实体,它们分别为用户(User)和帖子(Article)以及管理员(admin)。

以下是帖子、用户和管理员的实体图:

13

帖子内容帖子id帖子发表时间父亲帖id帖子帖子根贴id帖子回复量帖子主题帖子查看量叶子节点判断标记精华帖判断标记图4-1帖子实体图

用户名密码重复密码邮箱地址注册时间用户等级用户图4-2用户实体表

管理员编号管理员姓名密码账号创立时间管理员图4-3实体管理员表

系统的E-R图如下:

14

版块类别信息1属于1管理员n1管理11发帖帖子n用户属于1用户等级图4-4系统E-R图

4.3数据库的规律设计

根据数据库的概念设计,可以创立与实体对应的数据表。1、用户表(User)下面是对表User的具体设计

表4-1user

123456字段名userNamepasswordrePasswordmainUrlloginTimegradeNo属性varchar(30)varchar(25)varchar(25)varchar(50)datetimeint约束primarykey无无无无Foreignkey意义用户名密码确认密码邮箱地址注册时间用户等级说明:*userName是注册用户的用户名,为User表的主键。*password是用户密码,为用户登录时用。*rePassword是确认密码,与用户密码对应。

*mailUrl是用户的邮箱地址,通过它,我们可以与之通过邮件通信。*loginTime表示用户注册的时间。

15

*gradeNo表示用户的等级,与登记表(grade)中的gradeId相关联,组成表的外键。共分为四个等级:菜鸟、列兵、星级标兵和士官。

*在注册过程中,password和rePassword必需一致,否则无法成功注册。2、管理员表(admin)

表4-2admin

1234字段名adminIdadminNamepasswordadminTime属性intvarchar(25)varchar(25)datetime约束primarykey无无无意义管理员编号管理员姓名密码创立时间3、帖子表(Article)下面是对表Article的具体设计

表4-3article

1234567891011字段名idpidrootideditNotitlecontpdatewriterviewCountreplyCountisleaf属性intintintIntvarchar(30)textdatetimevarchar(30)intintint约束primarykey无无无无无无foreignkey无无无意义帖子id父亲id根id所属版块标题内容发帖时间帖子查看量帖子回复量判断帖子是否为叶子节点判断帖子是否为精华帖12isEssenceint无说明:*id是帖子的编号,为本表的主键。*pid是父亲id的编号,表示被回复的帖子id号。

*rootid表示根贴的id号,表示最初发起主题的帖子id号。

16

*editNo表示帖子所属的板块号,每个版块的帖子分版块区别显示。*title表示帖子的主题。*cont表示帖子的内容。*pdate表示发帖的具体时间。

*writer表示发帖的,此外键对应user表中userName字段。*viewCount表示帖子的查看量。*replyCount表示帖子的回复量。

*isLeaf判断帖子是否为叶子节点,值为1时表示为非叶子节点;为0时

表示为叶子节点。

*isEssence判断帖子是否为精华帖,值为1是表示是精华帖;反之,则不

是。

4、用户等级表(grade)

图4-4grade

12字段名gradeIdgradeCont属性intvarchar(25)约束primarykey无意义等级编号等级内容5、版块类别表(edit)图4-5edit

字段名属性intvarchar(25)约束primarykey无意义版块编号版块内容1edited2editName

17

articlePKidpidrootideditNotitlecontpdateviewCountreplyCountwriterisEssenceisLeafeditPKeditIdeditNameuserPKuserNamepasswordrePasswordloginTimegradeNogradePKgradeIdgradeCont

图4-5数据库模型图

18

5系统详细设计与实现

5.1前台设计

系统的前台,即是直接面向用户的所有页面。由于前台的功能模块较多,而各个模块的实现过程都是类似的,所以对于系统前台的介绍,只是做有选择的系统重点设计介绍。

5.1.1前台页面设计与实现

本系统的所有页面都采用了统一的简化页面框架,包括页头和内容显示区。前台首页的页面运行结果已在前文中出现过,此处不再累述。

下面主要介绍前台首页面index.jsp的具体实现。由于论坛是以主题分版块展示的,下面以其中一个板块页面做详细介绍。部分主要代码如下:

以上的语句实现的有三个功能:1、查询出帖子的总查看量;2、查询出帖子的总回复量;3、查询出最终的发帖。这些都是对整个板块的总体统计,是对板块信息的最直观的浮现。

5.1.2用户注册/登录、管理员登录

在论坛首页,提供了三个登录、注册入口,包括:用户注册/登录、管理员登录;通过点击如下链接,进入到对应各个界面。

href=\>普通用户注册href=\>普通用户登录href=\>管理员登录入口

1>用户注册

用户注册的网页文件对应的是“loginUser.jsp〞文件,在此页面下,非注册用户可以进行注册的操作。

运行效果图如下:

20

成功发表后,所发表主题会显示在论坛版块展示页面下(图5-4)。5.1.5探寻主题

和发表新主题不同,所有的用户都能够执行探寻主题的操作。在论坛版块展示页面点击“探寻主题“链接,进入到探寻主题页面。

图5-6探寻页面

图5-7探寻结果页面

26

5.1.6查看及回复主题

点击主题链接,进入主题查看页面。

图5-8主题显示页面

在此页面,用户点击“回复〞按钮,即可进入到回复主题页面,运行效果如下。

27

图5-9主题回复页面

在此,需要说明的是:为了美化回复的效果,在此参与了Fckeditor网页编辑器。具体实现步骤为:首先从网上下载一个Fckeditor,将解压文件拷贝到工程“WebRoot〞目录下,然后到压缩包解压文件“FCKeditor2.6.4〞下的路径:“\\fckeditor\\_samples\\html\\sample02.html〞下,开启静态页“sample02.html〞,然后将其代码复制、粘贴到回复页面“reply.jsp〞。修改即可。修改后的代码段如下:

点击提交,回复内容会显示在上级页面。

图5-10回复后主题显示页面

5.1.7优化主题的一些小设计

1>信息统计

29

(1)、帖子查看量与回复量的统计

如图5-4所示,在论坛版块的展示页面,会有“查看〞、“回复〞两个代表帖子被查看量和被回复量的信息提醒,这个是通过对article表设置的两个冗余变量“viewCount〞和“replyCount〞来实现的。在用户每次执行查看或者回复的时候,就对变量实行“++〞的操作,从而达到统计次数的目的。

那么,如何判断某个帖子被查看或被回复了呢?

这个过程是通过设置Session对象来实现的。在论坛板块页面(图5-4)添加如下语句,以判断帖子的查看状况。

session.setAttribute(“isView〞,〞true〞);

对帖子的回复动作系统也做了相应操作,在回复信息提交后,系统添加了一个过渡页面“replyDeal.jsp〞,假使此页面被激活,并且所回复内容被顺利添加到数据库后,就执行replyCount++的操作;反之,则不作任何操作。

(2)、版块内帖子查看量和帖子发表总量的统计

在论坛首页,如图3-1所示,也会有两个统计信息的存在,即:帖子总查看量和帖子发表总量。有了帖子查看量的计算方法,帖子总查看量的获得则变得相当

温馨提示

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

评论

0/150

提交评论