BBS论坛系统实验报告

时间:2024.4.13

《WEB程序设计》

实  验

  基于Struts框架的MVC设计模式

 网上论坛BBS系统设计

  目录

一、BBS论坛系统的需求分析

1.1 系统的功能需求

1.2 用例图

1.3 前台基本业务模块

1.4 后台管理模块

二、BBS论坛系统的UML建模

2.1 UML活动关系图

2.2后台UML活动关系图

三、数据库的逻辑设计

3.1 数据库关系图

四 MVC的组成

4.1 表示层

4.2 业务逻辑层

4.3 控制处理层

4.4 配置文件

五、BBS论坛系统的配置和实现

5.1 系统的组件图

5.2 系统的配置图

六 实现效果

七 实验总结

八 参考文献

一、BBS论坛系统的需求分析

1.1 系统的功能需求

 一个基本的BBS论坛,可以大致分为以下流程:用户登录进入论坛(一般为游客,有时还要注册为会员),就某个话题(帖字的主题)展开讨论。通过发贴功能发布新的话题;通过回帖功能回复已有的话题;通过搜索功能查找已有的话题。管理员通过管理功能创建、编辑、删除论坛的版块;管理注册的用户;管理帖子。   

 这样的流程决定了BBS论坛系统的需求:

(1)会员注册

提供新会员注册功能,包括提供录入信息的界面,检查注册信息的有效性,并将注册会员的信息保存在对应数据库的数据表中。

(2)发表帖子

提供会员发表帖子的功能,未注册的用户不允许使用该功能。

3帖子查询

对注册会员和未注册会员提供文章查询以及阅读的功能,即提供对应文章标题信息,以及查看详细内容及回复文章的超链接。

(4)会员管理

当网上论坛的会员完成注册后,系统会在数据库中加入会员的资料。包括会员名称、会员密码、会员E-mail等相关信息资料。同时,按照会员的不同身份,将特殊会议按设置为版主,使他具备删除本讨论区对应文章等特殊操作的权利。管理员可以依据数据库中注册的特殊身份登录到论坛后对会员信息进行管理。

(5)论坛分类管理

根据不同的讨论内容,管理员将整个讨论区划分成不同的区域,会员可以选择进入不同的讨论区,允许管理者对分类进行调整,同时提供不同讨论区中包括文章数量等的统计功能。

(6)帖子管理

管理员和版主可以对会员发表的帖子进行转移、置顶、修改和删除,设置精华帖,控制帖子的点击率等操作。

系统总体功能需求框架图如下图所示:

1.2 用例图

网上论坛Use Case 图

1.3 前台基本业务模块

前台基本业务模块包含下图所示的几个方面:

(1)会员注册

提供新会员注册功能,包括提供录入信息的界面,检查注册信息的有效性,并将注册会员的信息保存在对应数据库的数据表中。

(2)登录系统

提供会员的登录功能。要想针对某篇帖子发言,或发表帖子,必须是登录用户才可以操作。由于论坛中某些操作只有会员才可以执行

(3)浏览帖子

对注册会员和未注册会员提供文章查询功能及阅读功能,即提供对应文章的标题信息以及查看详细内容及回复文章的超链接。

(4)发表帖子

提供会员发表帖子的功能,未注册的用户无此项功能。

(5)回复帖子

注册会员和未注册会员可以对某一话题展开讨论,发表意见,并给出回复。

1.4 后台管理模块

后台管理模块主要包括对整个BBS系统的设置管理,包含下图所示的几个方面:

(1)版块管理

    根据不同话题,管理员可将每个话题分成不同的版块,然后对其进行管理。管理员可以删除不必要的版块话题;可以修改某个版块的主题名、类型和数量等;可以添加新的版块。

(2)帖子管理

    管理员可以对会员发布的帖子进行管理。管理员可以删除内容反动或不健康的帖子;可以顶置帖子。还可以设置精华帖,控制帖子的点击率等。

(3)会员管理

   管理员可以对会员进行管理。可删除会员,收回他的会员号;修改会员的基本信息,修改会员的积分,排行等。

二、BBS论坛系统的UML建模

2.1 UML活动关系图

 

2.2后台UML活动关系图

三、数据库的逻辑设计

3.1 数据库关系图

四 MVC的组成

4.1 表示层

前台

1.首页(login.jsp)

2.新用户注册页面(regist.jsp)

3.论坛分类显示页面(main.jsp)

4.论坛文章主题显示页面(topic.jsp)

5.论坛内容页面(content.jsp)

6.发表新文章页面(new.jsp)

后台

1.论坛管理系统登录页面(adminLogin.jsp)

2.论坛管理系统主页(AdminMain.jsp)

3.论坛用户管理首页(userAdmin.jsp)

4.论坛用户编辑修改页面(userEdit.jsp)

5.论坛分类管理页面(sortAdmin.jsp)

6.论坛分类编辑修改页面(login.jsp)

7.论坛文章管理页面(topicAdmin.jsp)

4.2 业务逻辑层

1.封装了数据库相关操作的Bean (Dao.java)

2.处理论坛会员信息的Bean (User.java)

3.处理论坛分类信息的Bean (Sort.java)

4.处理文章主题信息的Bean (Topic.java)

5.处理某文章主题下回复文章信息的Bean (Reply.java)

4.3 控制处理层

(1) ActionForm Bean

1.收取注册用户信息的ActionForm Bean (UserForm.java)

2.收取登录用户信息的ActionForm Bean (LoginUserForm.java)

3.收取显示论坛分类信息传递数据的ActionForm Bean (SortForm.java)

4.收取论坛文章主题信息的ActionForm Bean (TopicForm.java)

(2)Action Bean

1.负责处理用户登录请求的Action Bean (LoginAction.java)

2.负责处理用户注册请求的Action Bean (SignAction.java)

3.负责处理论坛文章主题显示页面请求的Action Bean (TopicAction.java)

4.负责处理文章内容显示页面请求的Action Bean (ContentAction.java)

5.负责处理发表新文章请求的Action Bean (NewTopicAction.java)

6.负责处理提交新文章标题和内容请求的Action Bean (NewTopicSubmitAction.java)

7.负责处理后台用户身份验证请求的Action Bean (ActionAdminLogin.java)

8.负责处理用户管理请求的Action Bean (ActionUserAdmin.java)

9.负责得很用户信息编辑修改请求的Action Bean(ActionUserEdit.java)

10.负责处理删除用户信息请求的Action Bean (ActionUserDel.java)

11.负责得很搜索用户信息请求的Action Bean (ActionUserSearch.java)

12.负责处理管理员提交的论坛分类信息管理Action Bean (ActionSortAdmin.java)

13.负责处理添加新的论坛分类信息管理的Action Bean (ActionSortInsert.java)

14.负责处理删除论坛分类信息管理的Action Bean (ActionSortDel.java)

15.负责处理编辑修改论坛分类信息管理的Action Bean (ActionSortEdit.java)

16.负责处理提交的论坛分类修改后信息的Action Bean (ActionSortEditSubmit.java)

17.负责处理论坛文章主题查询的Action Bean (ActionTopicSearch.java)

18.负责处理删除的文章主题信息管理的Action Bean (ActionTopicDel.java)

19.负责处理添加新的论坛分类信息管理的Action Bean (ActionSortInsert.java)

4.4 配置文件

1.配置web.xml配置文件

2. 配置struts-config.xml配置文件

3.资源包文件配置

五、BBS论坛系统的配置和实现

5.1 系统的组件图

BBS论坛系统的组件图如下图所示,组成该系统Web应用程序的页面包括:浏览帖子页面、发表帖子和回复帖子页面、登录页面、后台管理页面。

  

5.2 系统的配置图

配置图主要是用来说明如何配置系统的硬件和软件。BBS论坛系统的应用服务器负担保存整个web应用程序,数据库则是负责数据管理。此外还有很多终端可作为客户端访问网站。如下图所示:

六 实现效果

七 实验总结

在本次实验学习中,通过一个简单的BBS论坛系统,经过这一些步骤和方法,学习了解了各个模型的不同点和相互之间的联系,了解了他们的转换和演化过程,同时熟悉了Struts框架的使用,感觉学到了不少知识。在完成本系统的过程中主要遇到了几个困难。分别是:

1.        数据库的连接问题。

在开始之前,总是遇到数据库连接出现错误的问题。通过借阅图书馆的书籍。最终得到了问题的解决办法。采用JDBC。

2.        数据记录的分页显示问题。

数据记录的分页显示在动态网页中使用频率非常高,为了达到分页显示的目的,需要在建立与数据库的连接,创建Statement类型的对象时,进行特殊参数的设置。

3.        数据表之间的数据参照完整性

在设计数据库时,一开始没有考虑到数据表之间的关系,以至于在插入,修改,删除数据的时候出现了不少的问题。最终不得不把整个数据库重新定义。得出的结论是:无论在保存数据时,还是处理数据时,都应该分工明确,良好的分层处理可以使得程序更利于维护,升级。

4.        中文信息提交时的乱码问题

该问题出现是搞得很迷茫,在转码的时候由于不知道本来的码以致于转完码后得出来的还是乱码。JAVA中默认的是ISO_8859_1。在资源文件中也要转一次码。用到了JAVA中native2ascii命令进行了转码。

在本次实验中让我对Struts和MVC框架有了进一步的了解,在今后的学习道路上增添了不少知识。

八 参考文献

1.《Struts开发入门与项目实践》 作者:张桂元,贾燕枫

                                       人民邮电出版社

2.《数据库原理与应用技术》作者:苗雪兰,宋歌

                                       电子工业出版社

3.《JDBC数据库编程与J2EE》作者:[美]Art Taylor   

译者:李东升等                         电子工业出版社

4.《写给大家看的CSS书》作者:【美】Charles Wyke-Smith

译者:张松峰 张程 等                   人民邮电出版社

5.《JSP程序设计》作者:Vivek Chopra,Jon Eaves,Rupert Jones

译者:张文静,林琪等                   人民邮电出版社

6.《Head First 设计模式》作者:Eric Freenam & Elisabeth Freeman with Kathy Sierra & Bert Bates

O’Reilly Taivan 公司译 UMLChina 改编  中国电力出版社

7.《Servlet与JSP核心技术》作者:【美】Marty Hall

译者:邓英材,孟杰,孙建春             人民邮电出版社


第二篇:BBS论坛系统课程设计


课程设计任务书

课程设计报告

课程:软件工程          

学号: 0741704102        

姓名:王雯丽             

班级: 07级高插二班      

教师:韩丽娟             

曲阜师范大学

计算机科学学院


设计名称:

                                                             日期:2008年 12月 9 日  

BBS论坛系统

设计内容:

构建一个BBS论坛系统的注册与登录模块,使得会员可以正常登录,非会员可以进行注册成为会员,且会员可以修改自己的登录密码。

设计目的与要求:

目的:掌握ASP编程,熟悉Dreamweaver的使用以及模块的创建过程,

要求:会员登录与注册模块主要功能:用户注册成为会员、验证用户注册信息 、修改密码。用户注册是为了保证用户在本网站的安全性,便于网站管理。用户登录后才可以拥有相应的权限。修改密码是为了保证用户使用权限的安全性,使用户可以随时更改密码。

设计环境或器材、原理与说明:

环境:PC计算机一台,基于IIS服务器端的ASP、Dreamweaver环境的网页编程语言HTML

原理:在Dreamweaver环境下设计网页,编写ASP脚本以实现该有的功能。

设计过程(步骤)或程序代码:

注册:根据系统首页的链接,将表格中“会员注册”项建立链接到注册页面,注册页面register.htm界面设计总体采用表单,内部嵌入表格的形式,包含“帐号”、“密码”、“确认密码”、“电子邮件”、“个人主页”以及“自我评价”等信息,其中,带“(*)”的为必填内容。信息填完之后可单击“确定”按钮进行注册,需要修改可单击“重填”按钮进行重填。

信息接收后转入信息处理程序register.asp,根据要求编写代码实现,其中,必填项如果任何一项为空则给出提示并要求返回重填,若注册时密码与确认密码不一致也会给出提示并要求重填,把用户注册名与数据库中已有用户名对比,如果用户注册的账号已经存在,同样给出提示并要求返回重填。如果所有必填项均准确无误,则将用户信息写入数据库,并返回注册成功的信息给用户且要求其进行登录,即链接到登录页面login.htm。代码如下:

       <html>

<head></head>

<body bgcolor="#c1f7d8">

<center>

<%

dim strname,strpassword1,strpassword2,strnote,stremail,strhomepage,strpassword

'读取用户输入的注册信息数据

strname=request.Form("name")

strpassword1=request.Form("password1")

strpassword2=request.Form("password2")

stremail=request.Form("email")

strhomepage=request.Form("homepage")

strnote=request.Form("note")

'检查输入的内容是否为空的数据

if strname="" then

response.Write"账号不能为空<p></p>"

%>

<a href="javascript:history.back()">上一页</a>

<%

response.end

end if

if strpassword1="" then

response.Write"密码不能为空<p></p>"

%>

<a href="javascript:history.back()">上一页</a>

<%

response.end

end if

if strpassword1=strpassword2 then

strpassword=strpassword1

else response.Write"确认两次密码一致<br></br>"

%>

<a href="javascript:history.back()">上一页</a>

<%

response.end

end if

'打开数据库和数据库的值进行比对

strsql="select*from user where username='"&strname&"'"

set rs=server.CreateObject("adodb.recordset")

rs.open strsql,conn,1,3

if not(rs.eof and rs.eof) then

response.Write"你所用的账号已经存在,请修改账号<br><br>"

%>

<a href="javascript:history.back()">上一页</a>

<%

response.end

end if

rs.close

set rs=nothing

'把值添加到数据库中

strtable="user"

set rs=server.CreateObject("adodb.recordset")

rs.open strtable,conn,1,3

rs.addnew

rs("username")=strname

rs("userpassword")=strpassword1

rs("useremail")=stremail

rs("userhomepage")=strhomepage

rs("usernote")=strnote

rs.update

rs.close

set rs=nothing

response.Write"祝贺你,你已经申请成功"

%>

<br><a href="login.htm">请您登录</a>

</body>></html>

登录:根据系统首页的链接,将表格中“会员登录”项建立链接到登录页面,登录页面login.htm界面设计同样采用表单,内部嵌入表格的形式,包含“帐号”和“密码”两项内容,用户填写完毕单击“确定”按钮即进入登录信息处理页面login.asp,如果用户填写错误可单击“重置”按钮进行重填。

    信息接收后转入登录信息处理程序login.asp,根据要求编写代码实现,其中,用户名和密码均不能为空,且用户填写信息需与数据库中相应内容进行比较,其中任何一项内容填写错误均会有提示信息且要求返回重填。只有用户填写的内容与数据库中内容进行比较无误后方可进入论坛主目录,主目录头会显示会员应有的权限,如:修改密码、查看留言、浏览标题、发表文章以及返回等。如果单击登录的用户是游客,则剥夺其登录权限并给出提示。

代码如下:

      <body bgcolor="#c1f7d8">

<%

set rstemp=server.CreateObject("adodb.recordset")

dim strname,strpassword,sql

strname=request.Form("name")

strpassword=request.Form("password")

sql="select*from user where username='"&strname&"'"

rstemp.open sql,conn,1,3

if strname="" then

response.write"账号不能为空<p></p>"

%>

<a href="javascript:history.back()">上一页</a>

<%

response.end

end if

if strpassword="" then

response.write"密码不能为空<p></p>"

%>

<a href="javascript:history.back()">上一页</a>

<%

response.end

end if

if rstemp.recordcount=1 then

if rstemp("userpassword")=strpassword then

session("name")=strname

response.redirect"user.htm"

else

%>

<a href="javascript:history.back()">密码错误 请重新输入</a>

<%

response.end

end if

else

%>

<a href="javascript:history.back()">账号错误 请重新输入</a>

<%

response.end

end if

rstemp.close

set rstemp=nothing

%>

</body>

修改密码:会员登录后会有修改密码的权限,如果用户想要修改密码,则可在登录后单击“修改密码”,即可转入密码修改页面changpassword.htm。该页面界面设计仍然采用表单,内部嵌入表格的形式,包含“原始密码”、“新密码”和“确认密码”三项内容,用户填写完毕单击“确定”按钮即可转入密码修改处理程序changpassword.asp,填写错误可单击“清除”按钮重新填写。

用户单击“确定”按钮即转入密码修改处理程序changpassword.asp,在该页面中根据要求编写程序,其中,原始密码及新密码均不可为空,且新密码与确认密码必须一致,如果原始密码与新密码有任何一项为空或新密码与确认密码不一致则均会给出提示并要求返回重填。如果没有以上错误,则会提取原始密码信息与数据库中该用户密码对比看输入密码是否一致,如果密码输入错误则也会给出提示并强制不能修改密码,如果输入正确无误则将新密码写入数据库并给出密码修改成功的提示。

代码如下:

           <body bgcolor="#c1f7d8">

<center>

<%

dim stroldpassword,strnewpassword,strconfirmpassword

dim strwhere,strsql,strdsn,strchangesql

stroldpassword=request.Form("oldpassword")

strnewpassword=request.Form("newpassword")

strconfirmpassword=request.Form("confirmpassword")

if stroldpassword="" or strnewpassword="" then

response.Write("请输入密码")

%>

<a href="javascript:history.back()">上一页</a>

<%response.End()

end if

if strnewpassword<>strconfirmpassword then

response.Write("两次密码不相同")%>

<a href="javascript:history.back()">上一页</a>

<%response.End()

end if

strwhere="where username='"&session("name")&"'

and userpassword='"&stroldpassword&"'"

strsql="select * from user" & " " & strwhere

strchangesql="update user set userpassword='"&strnewpassword&"'"&strwhere

set rs=server.CreateObject("adodb.recordset")

rs.open strsql,conn,1,3

%>

<br>

<%

if rs.recordcount=1 then

set changers=server.CreateObject("adodb.recordset")

changers.open strchangesql,conn,1,3

set changers=nothing

response.Write("密码已经成功修改")

else

response.Write("密码输入错误,无法修改密码")

end if

rs.close

set rs=nothing

%>

</body>

游客的相应注册登录权限:根据系统首页的链接,表格中有“游客访问”项,如果是第一次访问本系统的游客在进入本系统首页后若不想注册成为会员则可单击此项。若单击“游客访问”项,则可进入游客访问页面visitor.htm,游客只有查看本系统中会员发表的文章的权限,如果游客在查看完文章后想成为会员,则可单击头部“会员注册”选项,从而转入注册页面进行注册,注册成功后即可登录享受会员权限。

设计结果与分析:

注册功能结果如图:

如果填写完毕并通过检查则注册成功,如图:

登录功能结果如图:

如果是游客,则其没有登录功能,当其点击登录按钮时则会给出提示,如图:

修改密码结果如图:

若修改成功则会给出提示,如图:

游客的浏览头部如图:

如果游客想要成为会员则可直接点击头部的会员注册按钮。

设计体会与建议:

通过两个星期的学习,发现了自己的很多不足,在设计过程中遇到了一些困难,发觉自己在网页设计以及ASP的使用上还欠缺很多,尤其是经常犯一些小错误致使网页无法运行而不自知。

这次的课程设计也让我深刻体会到了团队的合作精神,以前只是听老师说过,但总觉得无所谓,只要完成自己的工作就好。但通过这次的学习,我深深体会到团队合作的力量。要做一个系统,一个人是远远不够的,如果不跟组员进行沟通,有可能会导致致命的错误。通过这次设计,也正好锻炼了我们的合作能力。但因为时间有限,这个系统还有很多不尽如人意的地方,需要进一步修改,请老师给予批评指正,让我们能够进一步得到提高。

    但是通过这次课程设计,还是学到了很多课本以外的知识,并提高了自己的动手能力,并且熟悉了很多有关网页设计与制作的相关知识,以后应该更注重这方面的练习使自己的动手能力得以提高,并应该多补充网页设计的相关知识,努力掌握ASP的应用,为自己在将来的工作中有更好的表现奠定基础。                                                                                                     

   

设计成绩:                                                                        教师签名:

                                                                                                  年          月         

更多相关推荐:
博客管理系统实验报告

河南工程学院实习报告课程名称ASPNET程序设计实训设计题目博客管理系统系部计算机学院班级信息管理1133学号姓名实习时间20xx123020xx13指导教师李艳玮20xx年1月3日实习训报告评语等级评阅人职称...

学生信息管理系统实验报告

西安郵電學院数据库原理及应用设计报告题目:学生信息管理系统一.设计目的学生管理系统是高校管理工作中一项非常重要的组成部分。用户的需求具体体现在各种信息的提供、保存、更新和查询方面,这就要求数据库结构能充分满足各…

员工管理系统实验报告

员工管理系统专业班级学号姓名实验报告电子信息工程241019xx441周祥一系统定义企业员工信息管理系统是一个企业单位不可缺少的部分它的内容对于企业的决策者和管理者来说都至关重要所以员工信息管理系统应该能够为用...

商品管理系统实验报告1

湖南人文科技学院经济与管理科学系课程设计说明书课程名称网络数据库技术与应用题目商品管理系统年级专业班20xx级经济与管理科学系电子商务1班学生姓名蔡慧敏毛修丽谢江霞学号指导教师陈刚开题时间20xx617完成时间...

操作系统实验报告 文件管理系统 源程序

操作系统实验报告操作系统实验报告题目班级文件管理系统20xx年12月21日1操作系统实验报告目录一实践内容311实验内容32实验原理43实验要求4二实验的目的及意义4三详细设计531功能设计532结构设计633...

通讯录管理系统实验报告

通讯录管理系统测试报告姓名李晨雪专业计算机科学与技术班级6班学号20xx030010一实验内容1设计并实现通讯录管理系统该系统提供多用户的通讯录管理并能对通讯录中的联系人分组2具体任务完成用户管理窗口完成用户登...

c++图书管理系统实验报告和源代码

综合实践报告课程名称程序设计综合实训设计题目图书管理系统姓名学号专业班级指导老师完成日期1综合实践报告1设计任务11设计目的运用所学知识完成图书馆管理系统通过实践加强对所学知识的理解和巩固12设计内容建立图书馆...

数据库课程设计实验报告(宾馆客房管理系统)

数据库原理课程设计题目宾馆客房管理系统学院数学与信息工程学院专业信息管理和信息系统班级信息071学号学生姓名指导教师编写日期20##年01月21日目录1系统前期分析设计.....................…

文章编辑管理系统课程设计实验报告

程序设计基础及数据结构课程设计设计题目文章编辑管理系统系院经济管理学院专业信息管理与信息系统班级信管1111学年学期学年第学期月经济管理学院1课程设计任务书经济管理学院2目录1摘要42需求分析521用户需求分析...

学生管理系统实验报告

实验报告课程名称:数据库实验实验项目:综合应用学生管理系统实验报告一需求分析在如今的高校日常管理当中,学生管理系统就是其中非常重要的一环,特别是当前学生规模大,课程门类多,校区分散等实际情况,学生管理更具有非常…

学生成绩管理系统C++编程实验报告

C程序设计课程设计报告设计题目学生成绩管理系统专业计算机科学与技术网络工程班级学号姓名指导老师日期20xx0531目录一设计任务与要求31设计内容32课程设计的要求3二系统分析需求分析31需求分析32系统性能要...

学生管理系统实验报告

学生学籍成绩管理系统学生的信息包括姓名学号性别班级院系学生的成绩信息包括英语数学程序设计及体育成绩等各门课的成绩定义如下类并建立一个文本文件Studentdat用于存储学生课程与成绩的相关信息文件格式自己定义学...

实验报告管理系统(28篇)