JSP论坛论文.docx
《JSP论坛论文.docx》由会员分享,可在线阅读,更多相关《JSP论坛论文.docx(20页珍藏版)》请在冰豆网上搜索。
JSP论坛论文
武汉理工大学
毕业设计(论文)
JSP论坛
学院(系):
专业班级:
学生姓名:
指导教师:
摘 要
BBS论坛系统是采用java语言进行设计实现的,采用Tomcat作为后台服务器,以SQLServer作为数据服务器,使用接口、实现类、实体类、JSP进行逻辑控制,表现层用JSP页面显示,用于在网络上为网民提供一个信息发布、获取的场所。
实现了查看、发表、删除帖子功能,论坛帖子版块控制,注册用户可以修改自己的个人信息、增加好友与黑名单,管理员可以对用户、帖子,版块、版块权限和用户组权限进行管理。
论文从问题的提出、基本设计思想、数据的流向到具体的设计过程都做出了详细论述。
目 录
摘 要I
1 绪 论1
1.1 课题研究的目的及意义1
1.2 国内外研究动态1
1.3 本文的工作2
2 系统分析4
2.1 可行性分析4
2.1.1 社会可行性4
2.1.2 技术可行性4
2.1.3 经济可行性4
2.2 需求分析4
2.2.1 用户中心5
2.2.2 主题中心5
2.2.3 管理员功能6
2.2.4 统计功能6
2.3 开发工具及相关技术简介6
2.3.1 相关工具简介6
2.3.2 相关技术概述7
2.4 系统的数据流图9
2.5 用例图9
3 总体设计11
3.1 功能分析11
3.2 数据库设计12
4 详细设计与实现15
4.1 数据库连接15
4.2 前台显示模块15
4.3 后台管理模块23
5 测试与运行环境29
5.1 系统测试29
5.2 系统调试29
5.3 运行环境29
结 论30
参考文献31
致 谢32
附录 数据表33
1 绪 论
1.1 课题研究的目的及意义
设计的首要目的是运用已经学习到的java语言和SQLServer数据库知识自主实现一个实用的系统,使得现有知识得到更好的巩固,更加熟练。
同时在实现中学习到更多新的知识,能更深入掌握JSP、Java语言,了解软件开发的全过程,为以后的学习与工作打下坚实的基础。
BBS论坛系统是在网上提供交流的手段。
它可以用于满足网名的日常信息交流、技术讨论、查看新闻等,利用网络实时、便捷的特点来方便人们的交流、联系和娱乐。
1.2 国内外研究动态
进入二十一世纪,计算机技术迅速向着网络化、集成化方向发展。
传统的单机版应用软件正在逐渐退出舞台,取而代之的是支持网络、支持多种数据信息(多媒体)的新一代网络版应用软件,而目前网络版软件中似乎存在着两种不同的趋势,一种是称为客户端——服务器的C/S结构应用系统,这类软件具有结构严谨,运行效率高,服务器端压力小,安全性好等优点,被广泛运用于局域网中。
而另一种,也是本毕业设计所采用的,是称为浏览器——服务器的B/S结构应用系统,它的特点是在客户端直接采用了功能强大的浏览器软件作为界面,其优点在于软件开发效率高,客户端不受操作平台的限制、也不受地域的限制,网络传输量少,即适用于局域网,更适用于Internet,而且投资小、见效快,用户可以不必进行服务器方面的投资,而是去租用,甚至是免费使用ISP的服务器资源,因而受到越来越多中小型单位的青睐。
Internet起源于20世纪60年代末、70年代初,当时,美国国防部为了将充斥于军事基地内各种厂商的电脑主机互连,让它们可以进行数据交换以便研究工作顺利进行,于是成立了ARPA网络计划。
ARPA计划尝试建设一个网络系统,它可将各种不同厂商的电脑连接起来。
随着这个计划的成功,各学术单位,研究机构也纷纷与ARPA计划所建立的ARPANet连接。
到了20世纪80年代,Internet这个名词因势产生,它代表着这十年来所构建涵盖全球各地的网络系统。
从1990年起,商业使用的Internet在美国急速地扩大,而Internet也从原来属于少数人使用的网络系统转变为普通百姓也能够使用的网络系统。
最初的Internet资源服务都还停留在文本模式,1989年,量子物理实验室(CERN)下的一个研究小组着手开发一种全新的Internet服务,它可以在网络上传送图片、文本、影像、声音等多媒体数据。
于是由TimBernersLee领导的小组开发出了一种主从、分布式的网络服务系统,这就是WWW(WorldWideWeb),俗称“万维网”。
所谓WWW其实就是连上Web服务器访问资源,取得的内容就是所谓的“主页”(HomePage)。
进入的网页通常不会只有一页,而是整个网站的内容。
“网站”是一种呈现在网络上的新兴媒体,通过Internet已经成为一个实时的,多媒体的信息传播渠道。
它的载体主要是电脑,范围覆盖全球各地,没有国界,不分人种,时时刻刻地提供服务。
目前,人们渐渐开始把网站称之为广播、电视、报刊以外的第四新闻媒体,以“共享、公平、公正、创新、国际化、团队精神”为特征的网络文明也已逐渐成为这个时代的标志,人们越来越习惯于通过Internet网络获取信息,通过Internet在网站上发表自己对社会对生活的理解和建议。
随着网络的普及,论坛的内容越来越丰富,论坛也由此深受广大网民的喜爱,因此商业网站对论坛也重视起来,提供与网民交流的平台,同时在线技术支持也在论坛中开展起来。
1.3 本文的工作
BBS论坛系统就是提供给用户一个平台,会员用户可以通过Internet接入,登录论坛,在这个平台上发表文章、阅读文章、回复文章等等。
此类系统通常有以下四种类型的操作用户:
匿名用户、普通用户、版主、管理员。
每类用户有其不同的操作集,系统通常提供一个统一的登录页面,此页面应能自动识别不同级别的用户,并提供不同的操作界面。
与之相应,此类系统通常应具有以下功能:
用户注册、用户登录、发表文章、阅读文章、回复文章、分页查找、主题查找、作者查找、个人资料维护、找回密码、用户管理、友情链接管理等等,所有操作都可以由用户在客户端浏览器中完成,而服务器端程序会按用户的要求来完成对系统数据的操作,并将结果传给Web服务器,再由Web服务器处理成HTML文件后发送到客户端浏览器。
这就是所谓的B/S结构应用系统,B/S结构即Browser/Server(浏览器/服务器)结构,是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。
C/S结构,即Client/Server(客户机/服务器)结构,是大家熟知的软件系统体系结构,通过将任务合理分配到Client端和Server端,降低了系统的通讯开销,可以充分利用两端硬件环境的优势。
早期的软件系统多以此作为首选设计标准。
B/S结构下,用户界面完全通过WWW浏览器实现,一部分事务逻辑在前端实现,但是主要事务逻辑在服务器端实现,形成所谓N-Tier结构。
B/S结构,主要是利用了不断成熟的WWW浏览器技术,结合浏览器的多种Script语言(VBScript、JavaScript)和ActiveX技术,用通用浏览器就实现了原来需要复杂专用软件才能实现的强大功能,并节约了开发成本,是一种全新的软件系统构造技术。
随着Windows将浏览器技术植入操作系统内部,这种结构更成为当今应用软件的首选体系结构。
结合BBS论坛系统实际需要,本BBS系统采用B/S结构。
论文设计开发的系统为通用BBS系统,系统应该具备较大的可伸缩性,应该能适应最基本应用最广泛的Web平台。
另外,通用系统应该具备较大的可扩展性,而Java语言是面向对象的,面向对象编程注重程序的可扩展性,且Java语言是跨平台执行的,JSP相对其他网页编程语言有更多的优点,所以本系统采用Java+JSP作为编程语言。
2 系统分析
2.1 可行性分析
商业软件是根据客户的根本目的和需要而设计和开发的,可行性是开发的系统具有使用价值和生命力的保证。
2.1.1 社会可行性
当前社会是一个网络化的社会,网络就在人们周围,人们从网络上获取并发布信息,而本系统正是应这一需求而产生,为企业,个人发布,获取有价值的信息提供场所。
所以本系统具有社会可行性。
2.1.2 技术可行性
本系统采用java语言,用SQLServer数据库作为后台数据库,安装和使用简单易学,方便操作;前台页面采用JSP动态页面,JSP相比ASP、PHP都有很大的优势;服务器采用Tomcat服务器,它是一个开源软件。
开发人员在学习了这些语言或工具之后,有能力开发本系统。
2.1.3 经济可行性
经济可行性是指软件所带来的经济效益与开发设计所需要的投资费用相比较是否适当,软件是否会给使用者带来经济效益。
首先随着计算机软件和硬件技术的飞速发展,计算机软、硬件价格不断下降,设计本系统所投入的资金下降。
与使用本系统为企业发布、获取信息所节省的价值相比,应用本系统带来的收益较大,经济效益可观,所以在经济上是可行的。
2.2 需求分析
需求分析虽处于软件开发过程的开始阶段,但它对于整个软件开发过程以及软件产品质量是至关重要的。
随着软件系统复杂性的提高及规模的扩大,需求分析在软件开发中所处的地位愈加突出[1]。
所谓需求,是指用户对目标软件系统在功能、行为、性能设计约束等方面的要求。
在需求分析工作中,系统分析人员对用户的需求进行调查和分析,确定现有环境的特征,正确定义目标软件的特征。
因此,需求分析工作是对应用环境及其问题进行理解和分析,为问题涉及的信息、功能及系统行为建立模型,将用户需求精确化。
BBS论坛系统设计实现以下功能:
①用户中心:
包括用户注册、用户登录、用户注销、增加好友、删除好友、、修改个人资料等功能。
②主题中心:
包括主题分类(论坛版块)、查看主题、查看回复、发表主题、发表回复、对主题或回复进行搜索等功能。
③管理员中心:
管理员对论坛进行一些基本的维护,包括对帖子的删除、置顶、设为精华帖,对用户的删除、授权,对版块的权限管理,对用户组及用户组的权限的管理等[2]。
④统计功能:
对论坛的相关参数进行统计。
2.2.1 用户中心
当用户进入网站首页时,会有一个登录窗口,已经注册的会员用户可以在这个窗口中登录。
没有登录的用户只能查看主题,不能发表主题或评论。
登录之后,用户就可以发表主题或回复;查看或修改自己个人信息,包括修改用户头像,可以选择自己喜欢的图片作为自己的头像;可以给好友发送短信息,查看或删除自己收到的信息;用户可以在好友里设置自己的关系网,让用户与自己的好友交流更加方便,也可在让用户不接收不愿意见到的人的信息。
没有注册的用户可以在登录窗口中点击注册超链接进入新用户注册页面,输入用户名、密码、密码提示问题、提示问题答案,即可注册成为网站的会员。
密码提示问题是为找密码设置的,当用户忘记密码或密码丢失后可以通过输入提示问题答案来找回密码,如果用户回答正确,将让用户重新设置密码。
2.2.2 主题中心
系统有版块,主题和回复,其中版块是对主题的分类,回复是在主题下发表的,是用户对主题的评论。
当用户进入首页时会显示论坛的所有版块及每个版块下的主题数,帖子总数,最后发表主题的用户、时间。
进入版块之后显示该版块下的主题及该主题下的回复数,点击数,最后发表评论的用户、时间。
。
点击主题名进入主题页面,该页面有主题内容,发表该主题的用户的用户名、积分、用户组、注册时间,该主题下的回复及发表回复的用户的个人信息。
已登录用户可以在版块下发表主题,在主题下发表回复,还可以按关键字对主题或回复进行搜索,并支持模糊查询。
匿名用户只能查看主题内容,对主题或回复进行搜索,但不能发表主题,不能发表回复。
2.2.3 管理员功能
管理员作为一个特殊的用户,除了拥有普通用户拥有的功能外,还可以修改用户权限,管理用户组,管理版面,设置版主,控制用户组权限。
版主作为权限最少的管理者只能对自己所管理的版面的主题进行删除、置顶,设置精华贴,屏蔽用户的回复,编辑版面说明等。
2.2.4 统计功能
显示论坛当前注册总人数、当前帖子总数、论坛点击总数、当前在线人数,会员人数以及游客人数。
用户表现积分排行,调动用户积极性。
用户每次上线、发表主题或回复都会得到相应的积分,并以此来体现用户的活跃程度。
系统会对主题按点击数进行排序,对版面按主题数进行排序,帖子点击统计,方便了解热点话题。
本日版面排行榜,本日作者排行榜。
2.3 开发工具及相关技术简介
本系统采用的工具有JDK1.5、Tomcat6.0、MyEclipse8.5、SQLServer2005,使用的技术有Java、JSP、JavaScript、JDBC等。
2.3.1 相关工具简介
(1)JDK1.6.0
JDK是Sun公司Java应用程序和组件的开发环境,是编译和测试工具,也是提供java程序的Java虚拟机平台,是调试和运行JSP所不可缺少的工具。
本系统采用JDK1.6.0版本[3]。
(2)Tomcat6.0
Tomcat是开源的servlet和JSP容器(Sun官方推荐容器),它是Jakarta项目中一个重要的组成,由Apache、Sun和其他一些公司及个人开发。
Tomcat内部实现了Servlet和JSP引擎,而且扩展了一些应用服务器的功能,例如JNDI、数据库连接池、用户事务处理等。
目Tomcat被广泛地应用于中小规模的Javaweb应用中[4]。
(3)MyEclipse8.5
MyEclipse是在Eclipse集成开发环境中提供Web应用程序开发的插件,在目前软件开发的Java领域中,MyEclipse是一个使用非常广泛的工具。
MyEclipse是Eclipse软件的一个插件,Eclipse软件是免费的,但MyEclipse不是一个完全免费的产品,需要购买。
(4)SQLServer2005
SQLServer是一个关系数据库管理系统。
它最初是由MicrosoftSybase和Ashton-Tate三家公司共同开发的,于1988年推出了第一个OS/2版本。
在WindowsNT推出后,Microsoft与Sybase在SQLServer的开发上就分道扬镳了,Microsoft将SQLServer移植到WindowsNT系统上,专注于开发推广SQLServer的WindowsNT版本。
Sybase则较专注于SQLServer在UNIX操作系统上的应SQLServer安装界面用。
SQLServer2005有着高可用性、安全性增强、可伸缩性、易用性、可管理性、及对大型SQLServer配置的支持的显著特性,利于开发人员对数据的开发和维护。
2.3.2 相关技术概述
(1)Java语言概述
Java编程语言是一种通用、并发、基于类且面向对象的语言。
Java编程语言与C和C++相关,但是在组织方式上有差别,Java具有C和C++遗漏的许多优点,同时兼有其他语言包括的一些思想。
它旨在成为一种生产语言,而不是一种研究语言,并且正是如此[7]。
(2)JSP技术概述
JSP(JavaServerPages)是由Sun公司倡导,许多公司参与,共同建立人一种动态网页技术标准,JSP技术是在Servlet技术基础上发展起来的。
它正在飞速发展中,现在已经成为Java服务器编程的重要组成部分。
(3)JavaScript技术概述
JavaScript是一种基于对象(Object)和事件驱动(EventDriver)并具有安全性能的脚本语言,它所能提供的功能非常强大。
JavaScript是一种简洁的面向对象的描述语言,是专门用来开发Internet客户端和服务器端的应用程序,它可以被轻易的嵌入到HTML文件中,使用JavaScript浏览器可以回应使用者的需求事件而不用通过网络来回传资料,这样,使用者的资料就可以直接被客户端应用程序所处理,它的出现弥补了HTML语言的缺陷,它是Java与HTML折衷的选择[9]
2.4 系统的数据流图
数据流图即DFD(DataFlowDiagram)图。
是用于分析系统数据流程的图形,意在让用户理解系统的功能、输入、输出和数据存储等。
BBS系统的第一层数据流图如图2-1所示,描述系统由哪几部分组成,各部分之间有什么联系[13]。
2.5 用例图
用例是系统、子系统或类和外部的参与者(actor)交互的动作序列的说明,包括可选的动作序列和会出现异常的动作序列。
用例是代表系统中各个项目相关人员之间就系统的行为所达成的契约。
在UML中,用例用一个椭圆表示,用例名往往用动宾结构或主谓结构命名[14]。
参与者是指用户在系统中的扮演的角色,其图形化表示是一个小人。
BBS系统的用例有用户注册、登录、注销、浏览主题、发表主题、发表回复;管理员管理用户、管理主题。
用例图如图2-2所示
。
3 总体设计
3.1 功能分析
BBS系统分为前台和后台两个模块。
系统的功能模块图如图3-1所示。
前台模块的使用对象包括了所有用户(管理员、用户、游客),提供的功能包括注册帐号、用户登录、用户注销、浏览文章、发表新主题、回复主题、修改个人信息。
如图3-2所示。
后台模块的使用对象为管理人员(版主、管理员、超级管理员),提供的功能包括管理用户、管理版块、管理主题、管理用户组、功能权限管理、版块权限管理。
后台功能模块如图3-3所示。
3.2 数据库设计
根据前面的需求描述,本系统中可以抽象出来的数据模型有:
1.后台管理员表(TBL_Admin)
2.板块表(TBL_Board)
3.用户组表(TBL_Grade)
4.主题表(TBL_Topic)
5.积分表(TBL_Score)
6.回帖表(TBL_Reply)
7.用户表(TBL_User)
4 详细设计与实现
4.1 数据库连接
系统采用JDBC架构,数据库采用SQLServer,其连接数据库的关键代码:
1.static{
try{
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
}catch(ClassNotFoundExceptione){
e.printStackTrace();
}
}
.2.publicResultSetquery(Stringsql,String[]args){
try{
conn=DriverManager.getConnection("jdbc:
sqlserver:
//localhost:
1433;database=bbs","sa","123456");
pstmt=conn.prepareStatement(sql);
if(null!
=args)
for(inti=0;ipstmt.setString(i+1,args[i]);
returnpstmt.executeQuery();
}catch(SQLExceptione){
e.printStackTrace();
}
returnnull;
}
3.publicvoidclosed(ResultSetrs){
if(rs!
=null){
try{
rs.close();
}catch(SQLExceptione){
e.printStackTrace();
}
}
if(pstmt!
=null){
try{
pstmt.close();
}catch(SQLExceptione){
e.printStackTrace();
}
}
if(conn!
=null){
try{
if(!
conn.isClosed())
conn.close();
}catch(SQLExceptione){
e.printStackTrace();
}
}
}
使用注入Dao的形式进行数据库操作,在Dao中实现对数据表的增加、删除、查询、修改操作。
4.2 前台显示模块
前台显示模块包括用户的一些功能,具体的可分为用户注册、用户登录、用户注销、修改个人信息、查看版面、查看主题、查看回复、发表主题和发表回复等功能。
由于主题是在版块下存在的,所以在版块下的任何地方都可以发表主题,而回复只能是针对主题进行回复,所以必须在主题下才能发表回复,也就是在主题页面下才能点击发表回复。
现将部分功能说明如下:
(1)用户注册:
新用户在enrol.jsp页面中输入用户名,密码,密码提示问题、提示问题答案,点击提交按钮,数据提交到enrolinfo.jsp中进行处理,在enrolinfo.jsp中,如果用户名已经有人使用则返回注册页面,否则提示用户注册成功,并跳转到登录后的页面index_logined.jsp。
enrolinfo.jsp的代码如下:
<%@pagelanguage="java"import="java.util.*"pageEncoding="GBK"%>
<%@pageimport="entity.User"%>
<%@pageimport="dao.UserDAO"%>
<%@pageimport="dao.impl.UserDAOImpl"%>
<%
//post中文乱码处理
request.setCharacterEncoding("GBK");
Useruser=newUser();
StringUId=request.getParameter("hui");
StringUPass=request.getParameter("password");
StringUNickName=request.getParameter("Nike");
StringHead=request.getParameter("SelectAvatar");
StringGender=request.getParameter("xing");
Stringuname=request.getParameter("zname");
StringUCard=request.getParameter("card");
Stringquestion=request.getParameter("select");
StringUKey=request.getParameter("da");
user.setUId(UId);
user.setUPass(UPass);
user.setUNickName(UNickName);
user.setHead(Head);
user.setGender(Gender);
user.setUName(uname);
user.setUCard(UCard);
user.setQuestion(question);
user.setUKey(UKey);
UserDAOdao=newUserDAOImpl();
booleanbl=dao.addUser(user);
if(bl)
{
response.sendRedirect("/QNbbs/HTML/success.jsp");
}else
{