




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、目 录 1 1 背景及意义背景及意义.1 1 2 2 系统总体设计系统总体设计.3 3 1 系统目标.3 2 系统功能划分.4 1 前台功能结构.4 2 后台功能结构.5 3 系统开发环境.5 1 开发环境.6 2 系统平台体系结构的选择.6 3 JAVASCRIPT 语言简介及特点 .6 4 JSP 概述 .6 5 MYSQL.7 6 JDBC 技术 .7 3 3 数据库设计数据库设计.8 8 3.1 数据库分析.9 3.2 数据库概念设计.10 3.3 数据库的逻辑设计.11 4 4 系统详细设计与实现系统详细设计与实现.1111 4.1 前台设计.12 1 前台页面设计与实现.13 2
2、用户登录、管理员登录.14 3 论坛版块的展示.14 4 发表新主题.15 5 查看及回复主题.15 4.2 后台设计.16 1 管理员登录.16 2 用户信息管理 .17 结束语结束语.1 17 7 参考文献参考文献.1 18 8 1、背景及意义 网络的兴起与发展,极大地改变了人们的思维和行为习惯。基于网络的应用也层出 不穷,论坛就是最早兴起的应用之一。作为一种传递消息的方式,最早的BBS 的作用是 公布股市的即时消息,而随着时代的发展,现在的BBS 的内容已达到无所不包的程度。 小到生活趣事,大到专业知识,各种各样的主题论坛让人眼花缭乱。论坛网页的形式也 由最初的静态页面发展到现在的动态页
3、面,更好的实现了用户之间的交互。财大家园论 坛就是通过动态Web 开发技术和数据库技术实现的以财大学生与老师为主要服务对象的 一个基于现实环境之上的一个网上论坛,力求创造出一个模拟的网上校园虚拟环境。此 论坛是基于B/S 模式的一种JSP 网页论坛的设计与实现,力求做到界面友好、简单和易 于操作。论文从几个大的方面来对系统的开发做出了阐述。在系统分析一章从需求分析 和可行性分析两方面来做具体阐述;系统整体设计则从系统目标、系统功能划分和系统 开发环境三大方面说明,结合后面的系统详细设计与实现一章完成对系统从整体到细节 的全方位的理解。开发BBS 论坛系统的目的是为了提供一个大家交流的平台,供人
4、们发 表看法、探讨经验、讨论问题。因此,BBS 论坛系统的最基本的功能是发表主题,其次 是其它人员根据主题发表自己的看法,即回复主题。考虑到现实情况,并不是每一个访 问的游客都具有发表主题的权利,所以必须用一个身份绑定用户,赋予其发表主题的权 利,这就需要实现用户注册及登录的功能。每一个系统都需要管理员这个特殊群体的存 在,所以也需要实现管理员登陆的功能。管理员区别于一般用户的地方在于,管理员往 往具有更高的权限,有权对用户信息和帖子内容作出某些 “增删改查”的操作,所以, 针对管理员,系统应该实现删除和修改帖子以及对用户的管理等功能,以实现管理员对 社区的管理 。考虑到社区访问量会很大,用户
5、发表的帖子的数量自然很多,在浩瀚的 帖子海洋中,如何才能查看自己感兴趣的帖子成为了一个不得不考虑的问题。所以,系 统还应该实现搜索帖子的功能,用模糊查询的方法,对社区的帖子进行筛检的工作。本 系统针对用户还实现了一个特殊的功能,即邮件发送。如果某个用户对其他的用户感兴 趣,那么可以通过将邮件发送到指定用户注册时所填写的邮箱地址,这样的话,就能够 实现即时通讯的功能。 2 2 系系统统总总体体设设计计 1 1 系系统统目目标标 基于 BBS 论坛在现实生活的实际应用,本系统的系统目标是提供一个以现实环境为 基础的网上模拟交流平台,通过它,人们可以不必拘泥于空间和时间上的限制,方便交 流,畅所欲言
6、,同时也能够更加便利的看到周围人的想法,观点,最大化的丰富人们的 视野和生活,让人随时都能身在其中,随时也能置身事外。 2 2 系系统统功功能能划划分分 2.12.1 前台功能结构前台功能结构 系统的前台初始页面如下,登录地址为“http:/localhost:8080/BBS”: 图 2-1 财财大大家家园园网网首首页页 当用户登录到论坛首页时,其默认的身份就是游客,只能查看、回复、搜索帖子, 而不能执行发帖等其它操作。如果用户为非注册用户,则其可以进行注册以获得一个登 录身份。如果用户为已注册用户,则其可以直接进行登录,然后以注册用户的身份执行 诸如发表新主题、查看新主题、回复主题、搜索主
7、题等一系列操作。 此时,用户已经具有了一种身份,此后用户可以以此种身份执行诸如发表新主题、 查看主题、搜索主题、回复主题等操作。 2.22.2 后台功能结构后台功能结构 后台功能主要是针对管理员而设置的,用户以管理员的身份登陆后,就能执行后台 管理的操作,具体到此BBS 论坛,主要是指删除和修改主题以及对用户信息的管理。 后台系统流程图如下: 论坛首页 匿名身份登 录 是管理员吗? 管理员登录 Y 登录成功 N N 论坛首页 Y 图图 2 2. .2 2 后后台台系系统统流流程程图图 2 2. .3 3 系系统统开开发发环环境境 1 1 开发环境开发环境 在建立工程前,需要首先搭建开发环境。此
8、BBS 论坛系统的开发需要用到以下几种 工具,故开发前需要进行相应的下载和安装: 开发平台:MyEclipse 9.0M2 Web 服务器:Tomcat 7.0.5 数据库服务器:MySQL 5.1 Java 开发工具:JDK 1.6.0 辅助工具:Dreamweaver CS4 2 2 系统平台体系结构的选择系统平台体系结构的选择 在系统开发领域内,目前存在两大主流系统平台的开发结构,一种是C/S 结构,而 另一种是 B/S 结构。C/S 结构,即大家熟知的客户端/服务器结构,是一种应用较早,相 对传统的开发模式。通过它,可以充分利用两端硬件环境的优势,将任务合理的分配到 Client 端和
9、 Server 端,降低了系统的通讯开销。B/S 结构,即浏览器/服务器结构,是 随着 Internet 的兴起,对C/S 结构的一种变化或者改进。在这种结构下,用户不需要 借助于客户端软件,通过WWW 浏览器,即可实现系统的全部既定功能。在这种模式下, 一部分事务逻辑在前段实现,但是主要事务逻辑在服务器端实现,大大简化了客户端电 脑载荷,减轻了系统维护与升级的成本,从而降低了用户的整体成本。从开放程度来说, 传统的 C/S 结构虽然采用的是开放模式,但这个开放性只是针对系统开发一级的,在特 定的应用中,无论是客户端还是服务器端都还需要特定的软件支持。而B/S 结构,是一 次性到位的开发,应用
10、此模式开发的系统,不同人员,在不同地点,以不同的接入方式 (比如 LAN、WAN 等)访问并操作共同的数据库,能有效地保护数据平台和管理访问权 限,服务器的数据库也很安全。特别是在Java 这样的跨平台语言出现之后,B/S 架构管 理软件起来更是显得方便,快捷和高效。可以说,B/S 是乘着 Internet 兴起的风而杨风 远航的,是适应时代的产物。但是,B/S 也存在着自己的不足,比方说其在大量数据分 析,实时控制应用方面就存在着需要改进的地方。综合考虑,本系统还是考虑使用当下 流行的 B/S 结构作为系统的开发模式。 3 3 JSPJSP 概述概述 JSP 是由 Sun 公司在 Java
11、语言的基础上开发出来的一种动态网页制作技术,其将 标 记插入到页面中,从而使网页中的静态部分和动态部分分离开来。 JSP 是类似 ASP 的一种技术,在传统的静态网页HTML 文件插入 Java 程序段和 JSP 标记,就形成了JSP 文件。 JSP 技术的强势在于: 1、一次编写,到处运行。在更换系统时,代码不需要做任何修改。 2、系统的多平台支持。基本上可以在所有平台上的任意环境下开发,在任意环境 中进行系统部署,在任意环境中扩展。 3、强大的可伸缩性。通过小小的jar 文件运行 servlet/JSP,到由多台服务器进行 集群和负载均衡,到多台Application 进行事务处理,一台服
12、务器到无数台服务器, JSP 表现了强大的可伸缩性。 4、多样化和功能强大的开发工具支持,常用的编辑工具有Dreamweaver 和 MyEclipse 等。 .5 MySQLMySQL MySQL 可以称得上是目前运行速度最快的SQL 语言数据库,除了具有许多其他数据 库所不具备的功能和选择外,MySQL 数据库是一种完全免费的产品,用户可以直接从网 上下载数据库,用于个人和商业用途,而不必支付任何费用。 .6 JDBCJDBC 技术技术 数据库管理是每个应用系统开发过程中不得不考虑的问题,目前主流的数据库有 Oracle、SqlServer、MySql 等。
13、不管使用何种技术,都离不开JDBC 技术的支持。JDBC 的全称是 Java DataBases Connectivity standard,即 Java 数据库连接,是一种数据库 通用接口采用的主流技术。其定义了用来访问数据库源的标准Java 类库,通过它使用 一种标准方法,就能够方便的访问数据库资源。所以, JDBC 又是一种规范,其目标是使 应用程序开发人员通过它连接任何提供JDBC 驱动程序的数据库系统,这样就使得程序 员无需对某种数据库有过多的了解,大大加快了开发过程。 有了 JDBC,向各种数据库发送SQL 语句就是一件再简单不过的事了。换言之,有 了 JDBC,就不必为访问数据库
14、A 专门再写一个程序,又为访问数据库B 专门写一个程序。 所以,JDBC 为 Java 应用程序与各种不同数据库之间进行对话提供了一个标准的方法, 这也是 Java 语言“一次编写,到处运行”的优势。 4 数据库设计 4 4. .1 1 数数据据库库分分析析 数据库的设计,在应用系统的开发中起着举足轻重的作用。一个合理、有效的数据 库设计不仅是做好系统的保证,也能降低程序的复杂性,使程序的开发过程变得更加容 易。 本系统是一个中型的BBS 论坛系统,考虑到用户信息量和用户需求等问题,决定采 用 MySQl 作为项目用数据库。 MySQl 是一个中小关系型数据管理系统,最初由MySQL AB 公
15、司发布。MySQL 由于体 积小、速度快、总体拥有成本低等原因,成为许多中小型网站数据库的首选。 MySQL 可 以称得上是目前运行速度最快的SQL 语言数据库,此外,MySQL 数据库是一种完全免费 的产品,用户可以直接从网上下载数据库,用于个人和商业用途,而不必支付任何费用。 4 4. .2 2 数数据据库库概概念念设设计计 ER 图是实体联系图,E-R 模型是对现实世界的一种抽象。其组成部分主要包括实体、 联系和属性。使用这三种成分,我们可以很好的抽象出现实世界中的个体,并通过彼此 之间的联系来抽象整个世界。E-R 模型是设计数据库时经常使用到的方法。 经过分析,本系统创建了五张数据库表
16、,即帖子表(article)、版块表(edit)、 用户等级表(grade)、用户表(user)和管理员表(admin)。下面划分出本系统所使 用的数据库实体,它们分别为用户(User)和帖子(Article)以及管理员(admin)。 以下是帖子、用户和管理员的实体图: 帖子 帖子id 父亲帖id 根贴id 帖子回复量 帖子作者 帖子内容 帖子主题 叶子节点判断标记 帖子发表时间 帖子查看量 精华帖判断标记 图 4-1 帖帖子子实实体体图图 4 4. .3 3 数数据据库库的的逻逻辑辑设设计计 1、帖子表(Article) 下面是对表Article 的具体设计 表 4-3 article 字
17、 段 名 属性约束意义 1 idint prim ary key 帖子 id 2pid int 无 父亲 id 3 roo tid int 无根 id 4 edi tNo Int 无 所属 版块 5 tit le varchar(30 ) 无标题 6 con t text 无内容 7 pda te datetime 无 发帖 时间 8 wri ter varchar(30 ) fore ign key 作者 9 vie wCo unt int 无 帖子 查看 量 1 0 rep lyC oun int 无 帖子 回复 量 t 1 1 isl eaf int 无 判断 帖子 是否 为叶 子节 点
18、 1 2 isE sse nce int 无 判断 帖子 是否 为精 华帖 说明:*id 是帖子的编号,为本表的主键。 *pid 是父亲 id 的编号,表示被回复的帖子id 号。 *rootid 表示根贴的id 号,表示最初发起主题的帖子id 号。 *editNo 表示帖子所属的板块号,每个版块的帖子分版块区别显示。 *title 表示帖子的主题。 *cont 表示帖子的内容。 *pdate 表示发帖的具体时间。 *writer 表示发帖的作者,此外键对应user 表中 userName 字段。 *viewCount 表示帖子的查看量。 *replyCount 表示帖子的回复量。 *isLea
19、f 判断帖子是否为叶子节点,值为1 时表示为非叶子节点;为0 时表 示为叶子节点。 *isEssence 判断帖子是否为精华帖,值为1 是表示是精华帖;反之,则不 是。 4 系统详细设计与实现 4 4. .1 1 前前台台设设计计 系统的前台,即是直接面向用户的所有页面。因为前台的功能模块较多,而各个模 块的实现过程都是类似的,所以对于系统前台的介绍,只是做有选择的系统重点设计介 绍。 1 1 前台页面设计与实现前台页面设计与实现 本系统的所有页面都采用了统一的简化页面框架,包括页头和内容显示区。前台首 页的页面运行结果已在前文中出现过,此处不再累述。 下面主要介绍前台首页面index.jsp
20、 的具体实现。由于论坛是以主题分版块展示的, 下面以其中一个板块页面做详细介绍。部分主要代码如下: 以上的语句实现的有三个功能:1、查询出帖子的总查看量;2、查询出帖子的总回 复量;3、查询出最后的发帖作者。这些都是对整个板块的总体统计,是对板块信息的 最直观的展现。 2 2 用户登录、管理员登录用户登录、管理员登录 在论坛首页,提供了三个登录、注册入口,包括:用户注册 /登录、管理员登录; 通过点击如下链接,进入到对应各个界面。 普通用户注册 普通用户登录 管理员登录入口 1)用用户户登登录录 用户完成注册后,就可以进行用户登录的操作,用户登陆页面如下: 图 4-3 用用户户登登录录界界面面
21、 在用户登录时,如果用户名或密码输入有误,则会出现 “invalid username or password”的错误信息提示,然后页面返回到登陆页面供用户修正输入继续登录。 3 3 论坛版块的展示论坛版块的展示 版块页面运行效果 图 4-4 “最最初初的的梦梦想想“版版块块页页面面运运行行效效果果图图 从运行效果来看,此处运用了分页技术。分页技术实现的关键点依赖于一条重要的 sql 语句,具体如下: Select * from Table order by 参数 1 limit startPage+”,” endPage; 其中,Table 是所要查询的表名称; startPage 是起始页
22、面; endPage 是结束页面。 执行的效果是查询出排序结果的制定起始行到指定结束行的所有页面。 板块页面的展示是通过一个循环来实现的,在循环的基础上,为页面实现了一个优 化:奇偶行以不同的显示效果展现。 优化的方式主要向jsp 页面导入 class 文件,在导入的时候,针对行数的奇偶性采 取不同的对应操作。 主要代码如下: 实现代码具体如下: 代码段 1:获取制定部分行的查询结果 % final int PAGE_SIZE = 8; /每页显示的主题数目 int pageNo = 1; /记录当前页数 String strPageNo = request.getParameter(page
23、No); if (strPageNo != null catch (NumberFormatException e) pageNo = 1; if (pageNo totalPages) pageNo = totalPages; Statement stmt = DB.createStmt(conn); int startPos = (pageNo - 1) * PAGE_SIZE; String sql = select * from article where pid=0 order by pdate desc limit + startPos + , + PAGE_SIZE; Resul
24、tSet 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 classStr = lineNum % 2 = 0 ? jive-even : jive-odd; 4
25、4 发表新主题发表新主题 在论坛版块展示页面中,注册用户可以执行发表新主题的操作,对游客而言,则不 能实现此功能。这个功能是通过区分用户登录方式的不同而实现的,非注册用户点击 “发表新主题”的连接后会出现一个错误提示及跳转页面,以提示用户目前处于 “非登 录用户”状态,无权发表新主题。 已注册用户成功登陆后,则可以进行发表新主题的操作,运行页面效果如下: 图 4-5 发发表表主主题题页页面面 成功发表后,所发表主题会显示在论坛版块展示页面下(图 4-5)。 5 5 查看及回复主题查看及回复主题 点击主题链接,进入主题查看页面。 图 4-6 主主题题显显示示页页面面 在此页面,用户点击“回复”按
26、钮,即可进入到回复主题页面,运行效果 如下。 图 4-7 主主题题回回复复页页面面 在此,需要说明的是:为了美化回复的效果,在此加入了Fckeditor 网页编辑器。 具体实现步骤为:首先从网上下载一个Fckeditor,将解压文件拷贝到工程“WebRoot” 目录下,然后到压缩包解压文件“FCKeditor2.6.4 ”下的路径: “fckeditor_sampleshtmlsample02.html”下,打开静态页“sample02.html”, 然后将其代码复制、粘贴到回复页面“reply.jsp”。修改即可。修改后的代码段如下: window.onload = function() /
27、 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/ ;/ /fckeditor/ is the default value. var sBasePath = ; var oFCKeditor = new FCKeditor( cont
28、 ) ; oFCKeditor.BasePath= sBasePath ; oFCKeditor.ReplaceTextarea() ; 4 4. .2 2 后后台台设设计计 1 1 管理员登录管理员登录 后台设计主要指管理员登录页面及登陆后的主题删除与修改页面。管理员登录可以 通过点击“管理员登录入口”链接实现。管理员登录页面和用户登陆页面相似,见图5- 3,此处不再赘述。 2 2 删除主题删除主题 当需要对论坛上的帖子实现管理的时候,就需要以管理员的身份登录页面。管理员 所见的页面与普通用户所见的页面不同,在管理员页面下,能够实现对帖子的删除操作。 管理员登陆后的主题版块具体内容页面与普通
29、用户和游客登陆后的页面相比,多了 个按键【DEL】,分别代表删除帖子,点击链接即可进入相应删除页面。 身份是权利的象征,当一个用户以“游客”的身份登录论坛时,其只能实现查看、 回复帖子的最基本功能;而当一个用户以“注册用户”的身份登录时,其除了能够实现 游客的所有权利外,还能够进行发表新帖的操作;如果用户是以管理员的身份登陆的话, 他就拥有了最高的权限级别,除了能够实现注册用户的所有功能外,还具有删除及修改 帖子、管理用户的权利。 以上的权限区分是通过Session 来实现的。Session 一般来区分用户的登录方式, 通过在用户/管理员登陆后设置一个Session 值,来达到区分用户登录方式
30、,提升系统 安全性的目的。 用户登陆后所作的Session 操作: session.setAttribute(userLogined,true); 管理员登陆后所作的Session 操作: session.setAttribute(adminLogined, true); /区分登录方式(普通用户登录; 管理员登录) 3 3 用户信息管理用户信息管理 管理员登陆后,能够实现非管理员用户不能实现的三个功能,他们是:删除帖子、 修改帖子和管理用户信息。 删除和修改帖子是在主题展示页面(图 5-4)的帖子左端,增加【Mod】和【Del】两 个按钮,分别跳转到“modify.jsp”和“delete.
31、jsp”页面进行相应的修改和删除操作, 过程较简单,具体实现步骤此处不再赘述。 用户信息管理是每个管理员必备的功能之一。用户以管理员身份登陆后,在论坛首 页就会多出两个按钮:【退出登录】和【用户管理】,点击【用户管理】按钮,就进入 用户管理界面,以下是界面展示图: 图 4-8 用用户户管管理理界界面面 如图示,在此界面列出了系统所有已注册的用户部分信息。管理员可以根据需要对 个别用户执行删除或者修改的操作,以实现对用户信息的管理。单击 【删除】按钮,被 选定用户删除后自动跳转到论坛首页。 结束语 经过自己的不懈努力,毕业设计“财大家园 BBS 论坛”的工作已进入了收尾阶段。 回首此次毕业设计的设计、开发过程,大致经历了四个阶段: 搜集资料
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年多式联运信息平台技术创新与物流行业协同发展路径报告
- 深度解析:2025年教育大数据在教师培训体系中的应用
- 2025年储能技术多元化在储能电站建设领域的应用与产业链协同效应报告
- 2023浙江“安全生产月”知识竞赛试题附参考答案
- 2023年造价工程师考试《计价与控制试题与答案》
- Unit+5+On+the+road+Developing+ideas+Writing+a+postcard2025-2026学年高中英语外研版(2019)必修第二册
- 二零二五年度绿色节能型临建设施施工合同范本
- 二零二五年度家居建材市场门店转让及市场运营合同
- 二零二五年度融资租赁合同管理主要措施与资产配置优化
- 2025版房地产项目设计承包合同标准范本
- 2025年国家电网招聘电工类-本科、专科(官方)-第五章公共与行业知识历年参考试题库答案解析(5卷100道合辑-单选题)
- 传媒公司劳动合同2025年
- 2025年设备人员 试题及答案
- 《消毒技术规范》课件
- 护理学导论(第二版)高职PPT完整全套教学课件
- 2021年06月江苏泰州市兴化市农村订单定向医学生免费培养宣传材料笔试参考题库含答案解析
- 金属非金属矿山重大生产安全事故隐患判定标准课件
- 电力公司220千伏及以上电网建设项目档案管理实施
- 无菌术(asepsis)专题知识
- 洛神赋(原文·题解·注释·译文)
- FZ/T 25001-1992工业用毛毡
评论
0/150
提交评论