第一范文网 - 专业文章范例文档资料分享平台

基于JSP+Oracle的BBS论坛系统的开发

来源:用户分享 时间:2025/5/25 1:11:33 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

学生实训任务书

一、题目

基于JSP+Oracle的BBS论坛系统的开发 二、学生信息

专业: Java08-2班 学号: 2008131002** 姓名: *** 三、用户需求及约束条件

1、基本要求:

⑴用JSP+Oracle实现BBS论坛系统的动态网站开发。

⑵系统总体模块分为:用户注册模块、用户登录模块、信息显示模块、信息操作模块、用户管理模块和数据库模块。各模块间的关系如下图所示:

2、扩展的系统功能模块:

? 积分等级设置模块 ? 版面管理模块

? 查询(“版主”或“管理员”对内容的)改动记录 ? 文件上传进度条 ? 搜索帖子

3、高级编程:

? 使用柜架技术开发基于Struts/Springs/Hibernamte/Ajax的BBS论坛系统。

四、实训的目标、要求、技术路线及设计规格

1、设计的目标:

使用户能够自由地发布、回复信息,交流看法和观点,形成一个交流互动的平台;

2、设计的要求:

通过一个完整的论坛系统,从系统需求分析开始,到系统总体架构的实现,再到数据库系统设计,以及最后各功能模块的实现,把所学过的JSP知识和Oracle知识系统地贯穿起来,熟悉了Web软件系统开发的一整套流程。

3、技术路线:

使用B/S工作模式,以Oracle作为后台数据库,JSP为前台编程语言。还涉及到Servlet、JavaBean、JSTL、SSH等技术。

开发环境:MyEclipse 7.0 Ga、Tomcat 6.0、Oracle 10g、Dreamweaver等。

4、设计规格:

提交实训报告的正文部分内容包括:

⑴系统需求分析; ⑶数据库设计;

⑵系统总体架构设计; ⑷数据库对象的创建;

⑹系统的运行测试(可以通过屏幕捕捉来抓图)。

⑸系统各模块的页面编程实现;

5、所有的设计工作要求同学们真实地、独立地完成。

五、工作量

见《实训进度日历》。

六、考核形式、考核时间、考核指标及成绩评定

实训成绩构成:纪律、态度和平时表现20%;实训结果30%;实训报告30%;实践操作能力20%。

考核形式:

⑴指导教师每日对学生考察、评估和考核; ⑵最后对实训项目完成的质量进行考核和验收。

实训进度日历

题 目 指导教师 天 10年06月28日 10年06月29日 10年06月30日 10年07月01日 10年07月02日 上午/下午 “基于JSP+Oracle的BBS论坛系统”的开发 **** 实训任务详细描述 学生班级 Java08-1、Java08-2 学年学期 09-10学年 第2学期 教师实训任务的指导(解决方案、实现步骤、通过标准 技术路线、难点提示) BBS论坛系统有三类用户: 普通用户、版主和管理员。 文档通过验收 上午 完成系统需求分析 下午 构思系统的总体架构设计 包括:用户注册、用户登录、信息显示、信息操作、用户管理、数据库模块等模块。 设计系统数据流程图、各实体的E-R图; 把实体转化为关系表,再参照实体间的联系定义表的主键及其它约束,得到系统中各个表格的结构。 按照设计好的逻辑结构,在Oracle中创建这些表格的数据库对象。 各模块的详细构思 上午 数据库设计 系统逻辑结构设计 下午 数据库对象的创建 模式对象 上午 系统各模块的页面编程实现 数据库功能模块; 论坛首页。 连接数据库 下午 系统各模块的页面编程实现 用户注册与登录模块; 版面管理模块、等级称号管理模块。 调试运行 上午 系统各模块的页面编程实现 论坛信息内容的显示与操作模块; 用户管理模块。 调试运行 下午 系统的运行测试 测试运行各模块,完善并美化系统。 调试运行 上午 撰写实训报告 按照《实训报告要求》整理装订。 格式把关 下午 验收系统 组织讨论 指导教师分组进行验收学生的实训程序,并组织讨论和优秀作品展示。 系统验收 制订教师:闫红岩 目 录

一、系统需求分析 ............................... 错误!未定义书签。 二、系统总体架构设计 ........................... 错误!未定义书签。 三、数据库设计 ................................. 错误!未定义书签。 四、数据库对象的创建 ........................... 错误!未定义书签。 五、系统各模块的页面编程实现 ................... 错误!未定义书签。 六、实训总结 ................................... 错误!未定义书签。 七、附录(主要代码) ........................... 错误!未定义书签。

一、 系统需求分析

近年来, BBS论坛行业经历了很大的变化,从各大门户性网站到校园网站BBS论坛无处不在,BBS论坛在技术交流,讨论中发挥着重要作用。而且BBS发展方兴未艾。在这种大背景下,我们编写BBS作为实训项目, 编写此文档主要是为开发商指定我们对此系统的主要需求,使开发商能够根据该文档更准确的完成该系统。希望开发商能通过该文档完全了解我们对本系统的功能需求。

本系统中有三类用户,即普通用户、版主和管理员。 ⑴普通用户的功能:

a)用户注册; b)分页查看所有主题文章列表 c)发表主题文章 ;d)回复文章 e)查看主题文章和回复文章的详细内容 f)对自己发表或回复的文章进行修改和删除

⑵版主的功能:

a)具有普通用户的所有功能

b)对本讨论区的所有文章可以修改或删除 ⑶管理员的功能:

a)具有普通用户的所有功能

b)对所有版面的所有文章可以修改或删除

c)具有用户管理功能,包括修改用户的个人信息或删除用户

二、 系统总体架构设计

系统总体模块分为:

⑴用户注册模块:完成新用户的注册,并对新用户的注册信息进行错误检查。包含的文件:

a)新用户注册表单页面

b)验证注册信息并将注册信息存入数据库的页面

⑵用户登录模块:提供用户的登录界面,并验证用户名和密码,以确定用户身份。包含的文件:

a)用户登录页面(论坛的主页面) b)验证登录信息的页面

⑶信息显示模块:显示所有讨论区、各讨论区中的所有主題文章、主题文章和回复文章的详细内容。包含的文件: a)显示所有讨论区列表的页面

b)各讨论区中所有主题文章的分页显示页面 c)显示主题文章和回复文章详细内容的页面

d)退出论坛,从已登录的用户列表中删除退出的用户

⑷信息操作模块:提供发表主题文章、回复文章、修改文章及删除文章的功能,并对不同身份的用户给予不同的操作权限。包含的文件: a)发表主题文章或回复文章的页面 b)修改主题文章或回复文章的布面

c)验证文章的合法性并将文章信息存入数据库的页面 d)删除文章的页面

⑸用户管理模块:对用户个人信息进行管理,可设置某用户为版主或删除某用户。包含的文件: a)显示用户列表的页面 b)修改用户个人信息的页面

c)将修改后的用户信息存入数据库或删除用户

⑹数据库模块:该模块实现通过JDBC-ODBC的技术对Oracle数据库的连接和访问。包含的文件: a)连接数据库的JavaBean b)数据库连接池的JavaBean 各模块之间的关系如图所示:

三、数据库设计

1、系统处理数据的流程,如下图所示:

2、数据库结构设计

把用户信息、版面信息、等级称号信息、内容信息、改动记录信息五个实体,用E-R图方式描述如下: ⑴用户信息实体E-R图:

用户编号 用户姓名 性别 用户信息 权限 积分 登录 密码 是否 开放

⑵版面信息实体E-R图:

版面信息 版主编号 是否开放 版面文字 版面介绍 版面编号 ⑶等级称号信息实体E-R图:

等级称号 级别 称号 所需积分 ⑷内容信息实体E-R图:

内容编号 版面编号 用户编号 登录IP 内容信息 查看次数 发布日期 标题 内容明细 所属内容编号 ⑸改动记录信息实体E-R图:

编号 内容编号 改动日期 改动记录 改动批注 改动人编号 改动类型 增减积分 ⑹实体与实体之间的关系E-R图:

创建 版面 拥有 用户 生成 改动记录 拥有 等级称号 发布 内容 拥有 3、数据库各个表格的设计

把实体转化为关系表,再参照实体间的联系定义表格相应的主键,得到数据库各个表格的设计结果。 ⑴用户信息表:

字段名 bbs_memberid bbs_membername bbs_membersex 字段数据类型 Number Varchar2 Varchar2 字段长度 6 50 50 50 是否为空 不为空 为空 为空 为空 是否主键 主键 备注 用户编号 用户姓名 性别 权限 bbs_memberauthority Varchar2 bbs_membercredit bbs_memberisopen Number Varchar2 6 50 50 为空 为空 为空 积分 登录密码 是否开放 bbs_memberpassword Varchar2 ⑵版面信息表:

字段名 bbs_banmianid bbs_banzhuid bbs_banmianname bbs_banmianisopen 字段数据类型 Number Number Varchar2 Varchar2 字段长度 6 6 50 50 50 是否为空 不为空 为空 为空 为空 为空 是否主键 主键 备注 版面编号 版主编号 版面名称 版面介绍 是否开放 bbs_banmianintroduce Varchar2

⑶等级称号表:

字段名 bbs_level bbs_jifen 字段数据类型 Varchar2 Number 字段长度 50 50 6 是否为空 为空 为空 为空 是否主键 备注 级别 称号 所需积分 bbs_chenghao Varchar2 ⑷内容信息表:

字段名 bbs_contentid bbs_banmianid bbs_memberid bbs_memberip bbs_contentdate bbs_contenttittle bbs_content bbs_subcontentid bbs_totaltimes 字段数据类型 Number Number Number Varchar2 Varchar2 Varchar2 Varchar2 Number Number 字段长度 6 6 6 50 50 50 50 6 6 是否为空 不为空 为空 为空 为空 为空 为空 为空 为空 为空 是否主键/外码 主键 备注 内容编号 版面编号 用户编号 登录IP 发布日期 标题 内容明细 所属内容编号 查看次数 四、数据库对象的创建

数据库的逻辑结构设计完后,在Oracle数据库系统中实现此逻辑结构,即创建表、触发器对象和视图等。 1、创建表

⑴用户信息表(member): 同时创建相应的约束,比如:姓名能,权限只能取值“管理员”、“版主”、“用户”。使用OEM或SQLPlus创建。 ⑵版面信息表(banmian):

⑶等级称号表(step): ⑷内容信息表(content): 2、创建触发器对象 ⑴积分触发器

当用户在论坛中发布或回复一条帖子时,用户的积分应该增加1分,所以要为内容表创建一个触发器对象,SQL语句为: create or replace trigger trg_step before insert on step for each row begin

select seq_step.nextval into:new.bbs_jifen from dual; end;

同样,如果用户表和文章表有ID字段,也要为此ID字段添加自动加1的触发器。

⑵用户表触发器: //先为member表创建序列 create sequence seq_member minvalue 1 maxvalue 999 start with 100 increment by 1 cache 20;

//为表member创建触发器

create or replace trigger trg_member before insert on member for each row begin

select seq_member.nextval into:new.bbs_memberid from dual; end;

⑶内容信息表触发器: //为表content创建序列

create sequence seq_content minvalue 1 maxvalue 999 start with 100 increment by 1 cache 20;

//为表content创建触发器

create or replace trigger trg_content before insert on content for each row begin

select seq_content.nextval into:new.bbs_contentid from dual; end;

(4)版面信息表触发器 //为表banmian创建序列

create sequence seq_banmian minvalue 1 maxvalue 999 start with 1 increment by 1 cache 20;

//为表banmian创建触发器

create or replace trigger trg_banmian before insert on banmian for each row begin

select seq_banmian.nextval into:new.bbs_banmianid from dual; end;

3、创建视图

为简化后期代码编写,创建几个视图对象:版面信息视图、内容列表视图、内容明细视图、用户列表视图。

最后用用户表中添加一行记录,创建admin用户信息;再向版面表中添加一行记录,创建“版面1”的版面信息;向等级称号表中添加一行记录,创建一个等级为1,称号为一级,所需积分为0的等级称号。

五、系统各模块的页面编程实现

1、数据库功能模块

用来实现JSP到数据库的连接和访问功能,论坛中所有对数据库的操作都是通过数据库模块进行的。由于论坛中的用户操作会频繁地连接和访问数据库,因此要考虑采用数据库连接池来提高数据库连接的速度和效率。由于本BBS论坛系统只使用单一的数据库系统,因此没有必要使用连接池管理器。 2、用户登录功能模块

3、用户注册功能模块

用户注册模块是提供给用户一张注册表单,注册表单提交后要对提交的信息

进行客户端和服务器端的验证。如果有误则输出错误信息,正确则提示注册成功。 程序register.jsp是注册表单的页面,用JavaScript对注册信息进行客户端的验证。程序chkregister.jsp对提交的注册信息进行服务器端的验证,并将提交的注册信息存入数据库。

4、信息显示功能模块

登录论坛之后就进入了信息显示模块,首先看到的是论坛中的所有讨论区,单击讨论区的链接即可进入相应讨论区中的主题文章列表页面,单击主题文章的标题链接还可以进入查看主题文章内容及其回复内容的页面。此外,对于不同身份的用户显示有不同的权限:普通用户只能修改或删除自己发的文章;版主可以修改或删除本讨论区的所有文章;管理员则对所有讨论区中的所有文章都能进行修改和删除。

5、信息操作功能模块

信息操作模块提供发表主题文章、回复文章、修改文章以及删除文章的功能。 该模块对不同身份的用户给予不同的操作权限。为区分不同的操作,我们用参数exe来传递要操作的内容:exe为“write”表示要发表一个主题文章或回复文章;exe为“modify”表示要修改文章。

6、用户管理功能模块

用户管理模块能对各用户的个人信息进行管理,如设置某用户为版主或删除某用户等。该模块供论坛的 管理员专用。

为区分对用户管理的不同操作,我们用参数work来传递用户管理操作的内容:work为“mdfusr”表示要修改用户的信息;work为“delusr”表示要删除某个用户。

六、实训总结

对于BBS我们并不陌生,在网络上我们经常看到与BBS相关的论坛,还有很多与BBS类似的,如各种网络留言板等。虽然对这种论坛的版面和布局我们有一定了解,但刚开始时真是无从下手,感觉怎么做都不对,后来我们注册了几个大论坛然后仔细看了看,还试着发了帖子,才对BBS的各个流程步骤才有些真实的了解,再来就是在网上搜索了一般BBS的基本模块架构。

通过对网络上的BBS论坛的初步了解,我们基本熟悉了BBS的各个板块和各个模块的操作流程及步骤。然后,我们根据个人的能力进行了适当任务的分工,接着就是各自做自己的任务模块。

五天时间的实训已经接近尾声了,在这几天的实训中我们学到了很多东西,不仅提高了编程能力,更对编程思想有了新的认识:编程是团体合作项目。通过这次实训,在程序编写的过程中我们遇到了很多问题,这些问题不是一个人就能轻松解决的,这时候我们选择了团队合作,选择了相互鼓励,通过在一块相互讨论,查阅资料和老师请教,最终成功地解决了大部分问题。这时我们也认识到团队力量的重要性。

实训对我们来说,不仅是每天长时间面对电脑的身体挑战,更重要的是心里和精神上的挑战。一个在面对这些挑战时会产生很大的压力,但作为一个团体时

这些压力就会小很多。所以,在这次的期间大家感觉比以前轻松很多,这就是团队的力量。

总体来说,这次实训让我们受益匪浅 ,这次实训增强了我们的实际操作能力,让我们更能熟练的运用学过的技术为我们服务。

七、附录(主要代码)

1)用户管理模块代码

<%@page contentType=\<%@page import=\ </p><p>BBS-用户管理界面

-BBS-用户管理界面-

<%

Class.forName(\ String s=\

Connection con=DriverManager.getConnection(s,\ Statement stmt=con.createStatement();

String sql=\ try {

ResultSet rs=stmt.executeQuery(sql); while(rs.next()){ %>

<%=rs.getString(\ <%=rs.getString(\

<% }

}

catch(Exception e) {

System.out.println(\ } %>

2)内容信息模块

<%@page contentType=\<%@page import=\ </p><p>BBS--帖子列表界面

BBS--帖子列表界面

<%

Class.forName(\ String s=\

Connection con=DriverManager.getConnection(s,\ Statement stmt=con.createStatement(); String sql=\* from content,member where content.bbs_memberid=member.bbs_memberid\ try {

ResultSet rs=stmt.executeQuery(sql); while(rs.next()){ int id = rs.getInt(1) ; %>

<%

request.setAttribute(\%>

<%

request.setAttribute(\}

}

catch(Exception e) {

System.out.println(\ } %>

<%=id%><%=rs.getInt(2)%> <%=rs.getInt(3)%> <%=rs.getString(4)%> <%=rs.getString(5)%> <%=rs.getString(7)%><%=rs.getInt(8)%><%=rs.getInt(9)%>

3)信息操作模块(发帖)

<%@page contentType=\<%@page import=\<%@ page import=\<%@ page import=\<%@ page import=\

</p><p>BBS--发帖成功界面

BBS--发帖成功界面

<%

request.setCharacterEncoding(\response.setCharacterEncoding(\

String bbs_contenttitle=request.getParameter(\String bbs_content=request.getParameter(\out.print(bbs_contenttitle); try{

Class.forName(\ String s=\

Connection con=DriverManager.getConnection(s,\ //Statement stmt=con.createStatement(); //String sql=\

member(bbs_membername,bbs_membersex,bbs_memberauthority,bbs_memberpassword,bbs_memberisopen,bbs_memberphoto) \ //

\rpassword+\ //String sql=\

member(bbs_membername,bbs_membersex,bbs_memberauthority,bbs_memberpassword,bbs_memberisopen,bbs_memberphoto)

values('\password+\ //stmt.executeUpdate(sql); //插入图片测试

String sql=\PreparedStatement pstmt=con.prepareStatement(sql); pstmt.setString(1,bbs_contenttitle); pstmt.setString(2,bbs_content); pstmt.execute();

con.commit(); con.close(); }

catch(Exception e){ } %>

(删除帖子)

<%@page contentType=\<%@page import=\ </p><p>BBS--删除帖子界面

-BBS--删除帖子界面-

-帖子列表-

<%

Class.forName(\ String s=\

Connection con=DriverManager.getConnection(s,\ Statement stmt=con.createStatement();

String sql=\content.bbs_memberid=member.bbs_memberid\

try {

ResultSet rs=stmt.executeQuery(sql); while(rs.next()){ %>

<%=rs.getInt(\ <%=rs.getString(\ <%=rs.getString(\

<%=rs.getString(\

<% }

}

catch(Exception e) {

System.out.println(\ } %>

搜索更多关于: 基于JSP+Oracle的BBS论坛系统的开发 的文档
基于JSP+Oracle的BBS论坛系统的开发.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c0q6pm1aubf4n7xz5ebcl_1.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top