基于JSP的在线投稿审稿系统的设计与实现毕业论文.docx
《基于JSP的在线投稿审稿系统的设计与实现毕业论文.docx》由会员分享,可在线阅读,更多相关《基于JSP的在线投稿审稿系统的设计与实现毕业论文.docx(61页珍藏版)》请在冰豆网上搜索。
基于JSP的在线投稿审稿系统的设计与实现毕业论文
基于JSP的在线投稿审稿系统的设计与实现毕业论文
1前言1
1.1项目背景1
1.2国外相关发展情况1
2可行性分析与概述2
2.1可行性分析2
2.1.1经济可行性3
2.1.2运行可行性4
2.2的结构和原理4
2.3的开发环境及所用语言5
2.3.1开发环境5
2.3.2开发语言5
2.3.2.1Java5
2.3.2.2JSP简介5
2.3.2.3SQLServer简介6
2.3.2.4HTML7
3系统设计7
3.1流程设计8
3.2功能设计8
3.2.1功能图8
3.2.2功能概述9
3.2.2.1用户注册登陆管理9
3.2.2.2普通用户模块9
3.2.2.3专家模块9
3.2.2.4管理模块9
3.2.2.5查询模块10
3.3架构设计10
3.4数据库设计10
3.4.1数据库的需求分析10
3.4.2数据库的具体分析11
4系统实现13
4.1实现概述13
4.2详细设计13
4.2.1注册模块实现13
4.2.2登录模块实现19
4.2.3查询模块实现22
4.2.4投稿模块实现27
4.2.5用户浏览修改资料功能30
4.2.6专家审核稿件功能38
4.2.7“联系我们”功能42
4.2.8文章管理功能45
4.3技术难点47
4.3.1MD5加密47
4.3.2随机验证码48
5系统测试51
5.1测试环境51
5.2单元测试51
5.3浏览器测试51
6总结51
参考文献53
Abstract54
1前言
1.1项目背景
随着计算机技术的飞速发展和因特网的普及,网络已经渐渐成为我们获取信息及文化资源的主要途径,近十年来,Internet技术被应用于各个领域,成为当今应用围最广、影响最深刻的一项科学技术。
其中的Web技术采用浏览器和超文本,得到了众多Internet很多人的青睐。
同时,Web技术业的到了众多计算机应用系统开发者的认真研究,形成了一系列基于Web技术的计算机应用系统。
在数据库应用领域,Web技术为网络数据库应用系统提供了一种全新的应用模式。
将Web技术与数据库技术相结合,使得Web技术与数据库技术都发生了质的变化。
由于数据库技术的支撑,Web页面由静态网页发展成为动态网页;由于Web技术的支撑,数据库应用系统实现了数据环境和应用环境的分离,使得客户端用相对统一的浏览器实现跨平台的零客户端应用。
互联网是一个不受时空限制的信息交换系统,它是目前最直接、最丰富和快捷的联系方式,信息沟通的高效率为人们带来了最大的方便。
在网上可以直接看到您所需要的期刊、新闻、资料。
通过期刊还发表您的作品,提出你的想法,让更多的用户和浏览者在网上了解你,熟悉你。
本课题主要就互联网中的建立展开研究,通过对jsp语言和数据库等技术的学习,设计出基于Web的杂志投稿审稿系统。
1.2国外相关发展情况
目前,网络应用软件运行的模式主要有二类:
Client/server模式,Browser/Web模式。
前者主要的缺点是维护、升级较麻烦,后者是近几年伴随Internet迅速发展起来的一种技术,它与客户/服务器方式类似,客户端是一个标准的浏览器,服务器端是Web Server ,而Web Server与数据库和应用服务器的紧密结合,使得这种模式的应用围不断扩大,它已不仅仅用于网上查询,有很多部门的业务系统、企业的MIS系统纷纷采用这种模式,它的主要优点是便于扩充应用、升级维护简便。
利用网络和数据库技术,结合目前硬件价格普遍下跌与宽带网大力建设的有利优势,应用JavaServerPage技术,我开发了基于B/S模式在线投稿、审稿、查询系统这一程序。
投稿审稿系统是指利用编辑部部局域网和Internet为基本平台,实现作者---编辑---审稿专家---编委四位一体的协作化、网络化、角色化的编辑稿件业务处理平台。
在信息技术发达的国家,这种应用及其带来的便利性已经得到实践的检验,成为稿件编辑部进行日常业务处理的标准工作平台。
实践证明,它的意义不仅在于大大减低了编辑的工作量、缩短稿件的刊出周期,还大大提高了审稿的效率、准确性和权威性;同时,它也提高了作者的满意度,使刊物更容易得到高质量的稿源。
在我国,由于公共基础网络质量相对较低,此类投稿审稿系统的应用相对滞后。
自1998年以来,也有不少期刊在这方面进行了有益的尝试。
但由于各种各样的原因,这些系统大多流于形式,得不到真正的应用。
目前,由于以下的原因,使越来越多的编辑部开始认真规划和部署适应自己需要的投稿审稿系统。
(1)国际化的合作,特别是国际间学术的合作日益增加,使编辑部的作者群、专家群和读者群日益国际化,传统的通信方式或基于简单E-mail方式的审稿流程已经不能适应这种国际化的编辑流程。
(2)刊物之间的激烈竞争使高质量的稿源日益成为大家争夺的宝贵资源,因此强化刊物特色、提高刊物的权威性,以及提高作者的满意度,成为刊物之间竞争的重要方式。
而要提高作者的满意度,必须缩短稿件的刊出周期、提高审稿的权威性、客观性;同时也必须提高作者与编辑之间、编辑与审者之间的互动性。
(3)我国基础网络设施的改善,使宽带的成本越来越趋于合理化,使得远程审稿的成本(包括系统拥有成本和运行成本)越来越低。
基于上述考虑,整个投稿审稿系统采用Browser/Web/DataBase的三层体系结构。
Web服务器接受请求,通过应用程序服务器执行一个Java服务器端小程序Servlet并返回其输出,从而实现与客户机进行信息资源的交互。
数据库服务器用来存储管理信息系统中所用到的各种数据,数据由数据库管理程序直接录入。
系统的客户端只需要一个浏览器即可。
相关人员通过浏览器来查询、增加、修改、删除数据,对信息进行管理。
2可行性分析与概述
2.1可行性分析
可行性分析(已具备的条件和待解决的问题;拟采取的研究方法、技术路线、实验方案等)
1、已具备的条件:
资料的查询、计算机硬件的准备、对已有的期刊管理系统的研究和体会。
2、待解决的问题:
页面的设计实现、数据库的构建、库的连接及各个表的创建、文件的上传功能
3、拟采取的研究方法:
JSPSQLserver
绝大多数JSP页面依赖于可重用且跨平台的组件(如:
JavaBeans或者EnterpriseJavaBeans)来执行应用程序所要求的更为复杂的处理。
开发人员能够共享和交换执行普通操作的组件,或者使得这些组件为更多的使用者或者用户团体所使用。
基于组件的方法加速了总体开发过程,并且使得各种群组织在他们现有的技能和优化结果的开发努力中得到平衡。
JSP技术很容易整合到多种应用体系结构中,以利用现存的工具和技巧,并且扩展到能够支持企业级的分布式应用。
作为采用Java技术家族的一部分,以及Java2EE的一个成员,JSP技术能够支持高度复杂的基于Web的应用。
SQLserver2000是Microsoft公司发行的关系型数据库管理与分析系统,它提供了功能全面、操作简单的图形界面。
由于JSP应用的后台程序中有专门针对SQLserver的数据应用类库供用户使用,方便了用户对数据的操作。
4、功能简介
在线投稿系统可以方便地实现:
1)在网上投稿、查询稿件,以及查询自己稿件的处理状态;
2)将稿件提交到系统中、审核投稿容;
前台功能:
在线投稿:
为防止作者重复同时保存投稿的原始记录,第一次投稿前作者必须先注册登记,然后使用注册成功的和密码(或称口令)进行登陆,进入个人控制面板。
在个人控制面板中提供了发表文章、查看个人发表的全部文章、可查询自己稿件的审稿情况,审稿意见,查看个人资料等服务。
作者只需注册成为系统的一个用户,用自己的用户名和密码登录系统后,即可完成如下的工作:
远程投稿、远程查稿、修改个人信息等。
后台功能:
文章审批、修改:
按收到投稿的时间先后顺序,对每一篇作品按照规定的标准进行审阅,决定是否录用,同时发出录用或退稿。
2.1.1经济可行性
由于该系统作为毕业设计的课题,这一特殊性使得计算机硬件、系统软件、机房、电源、以及系统开发人员、维护人员的工资、培训费等费用可以省略。
系统的效益可以从经济效益和社会效益两方面来考虑。
对于本系统来说,系统开发成功投入使用后,减轻了编辑人员的重复劳动,提高工作效率,缩短稿件发表周期,可以全方位整合资源。
2.1.2运行可行性
该系统运行后,用于编辑部管理稿件、管理审稿者、以及对编辑部各个板块的管理,实现从投稿,审稿,编辑,发行等全过程的网络化,比传统模式更加灵活方便。
通过对上述三方面进行可行性分析和研究后,我们认为该项目的开发是可行的。
2.2的结构和原理
本采用当前流行的MVC设计模式。
MVC(Model-View-Controller)JavaBean+JSP+Servlet模式,即模型-视图-控制器模式,其核心思想是将整个程序代码分成相对独立而又能协同工作的3个组成部分.
·模型(Model):
业务逻辑层.实现具体的业务逻辑,状态管理的功能.
·视图(View):
表示层.即与用户实现交互的界面,通常实现数据输入和输出功能.
·控制器(Controller):
控制层.起到控制整个业务流程(FlowControl)的作用,实现View和Model部分的协同工作.
MVC模式的功能示意图如下图所示:
图1MVC模式的功能示意图
MVC模式的优点:
·有利于程序的维护和功能的扩展。
在MVC框架中,各层在功能和结构上是相互独立的,每个层负责实现各自的功能。
如果某个层的需求发生了变化,则只需要更改相应层中的代码即可,而不会影响到其他层中的代码。
·有利于开发中的分工。
在MVC框架中,由于把应用程序划分成了3个层,可以很好地实现开发中的分工。
·有利于组件的重用。
MVC框架的分层开发模式,有利于组件的重用。
各层都可做成组件或独立的功能模块,从而可以把这些组件或模块应用到其他的项目开发中。
2.3的开发环境及所用语言
2.3.1开发环境
本是在WindowsXP环境下开发的,使用的数据库是SQLserver2000,以TOMCAT作为Web服务器,使用的IDE包括:
Myeclipse5.5GA(后台开发),DreamweaverCS3以及PhotoShopCS3(界面开发)。
2.3.2开发语言
2.3.2.1Java
Java是Sun公司推出的一种编程语言。
它是一种通过解释方式来执行的语言,语法规则和C++类似。
同时,Java也是一种跨平台的程序设计语言。
本采用java开发主要考虑的是Java以下优点:
·平台无关性
·安全性
·分布式
·健壮性
2.3.2.2JSP简介
JSP(JavaServerPages)是由SunMicrosystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。
JSP技术有点类似ASP技术,它是在传统的网页HTML文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件(*.jsp)。
用JSP开发的Web应用是跨平台的,即能在Linux下运行,也能在其他操作系统上运行。
JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。
网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。
JSP将网页逻辑与网页设计和显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。
Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序段,然后将执行结果连同JSP文件中的HTML代码一起返回给客户。
插入的Java程序段可以操作数据库、重新定向网页等,以实现建立动态网页所需要的功能。
JSP与JavaServlet一样,是在服务器端执行的,通常返回该客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览。
JSP的1.0规的最后版本是1999年9月推出的,12月又推出了1.1规。
目前较新的是JSP1.2规,JSP2.0规的征求意见稿也已出台。
JSP页面由HTML代码和嵌入其中的Java代码所组成。
服务器在页面被客户端请求以后对这些Java代码进行处理,然后将生成的HTML页面返回给客户端的浏览器。
JavaServlet是JSP的技术基础,而且大型的Web应用程序的开发需要JavaServlet和JSP配合才能完成。
JSP具备了Java技术的简单易用,完全的面向对象,具有平台无关性且安全可靠,主要面向因特网的所有特点。
JSP优越性主要体现在以下几个方面:
(1)一次编写,到处运行。
在这一点上Java比PHP更出色,除了系统之外,代码不用做任何更改。
(2)系统的多平台支持。
基本上可以在所有平台上的任意环境中开发,在任意环境中进行系统部署,在任意环境中扩展。
相比ASP/PHP的局限性是现而易见的。
(3)强大的可伸缩性。
从只有一个小的Jar文件就可以运行Servlet/JSP,到由多台服务器进行集群和负载均衡,到多台Application进行事务处理,消息处理,一台服务器到无数台服务器,Java显示了一个巨大的生命力。
(4)多样化和功能强大的开发工具支持。
这一点与ASP很像,Java已经有了许多非常优秀的开发工具,而且许多可以免费得到,并且其中许多已经可以顺利的运行于多种平台之下。
2.3.2.3SQLServer简介
SQLserver2000是Microsoft公司发行的关系型数据库管理与分析系统,它提供了功能全面、操作简单的图形界面。
由于ASP.NET应用的后台程序中有专门针对SQLserver的数据应用类库供用户使用,方便了用户对数据的操作。
2.3.2.4HTML
HTML的英文全称是"HypertextMarkupLanguage",中文译为“超文本标记语言”。
“超文本”就是指页面可以包含图片,联接,甚至音乐,程序等非文字的元素。
在几年前作为SGML的一个子集开发的。
一个HTML文件中包含了所有将显示在网页上的文字信息,其中也包括对浏览器的一些指示,如哪些文字应放置在何处,显示模式是什么样的等。
如果你还有一些图片、动画、声音或是任何其它形式的资源,HTML文件也会告诉浏览器到哪里去查找这些资源,以及这些资源将放置在网页的什么位置。
浏览的网页就是由HTML语言编写出来的。
虽然HTML是一种语言,但HTML不是程序语言,如C++和Java之类,它只是标示语言,你只要明白了各种标记的用法便算学会了HTML。
HTML的格式非常简单,只是由文字及标记组合而成,因此任何文本编辑器都可以制作HTML页面。
在编辑器中输入HTML代码即可完成对网页的设计,如果在其中加入VB,JAVA等脚本文件以及数据库连接有关的语句指令,便可对已知数据进行查询,从而生成动态网页的一部分。
3系统设计
本系统的角色划分为三类,实现普通用户在线投稿和查询文章;评审员对所投稿件的审核;管理员对稿件的审核和的管理。
(1)普通用户注册和登录,查看所有文章,用户注册完后回到首页进行登陆,登录之后进行在线投稿和相关查询,在稿件管理中用户可以查询到自己稿件的状态,已审稿件中收录了该用户已经发表的投稿,待发稿件中包含了用户待审核的稿件。
(2)评审专家登录,登陆后在文章管理栏目中查看待审核的稿件,审核之后发表,审核的同时可以对文章进行点评。
(3)管理员登录,登陆后在文章管理栏目中查看并审核稿件,并可以进行栏目管理和用户管理,在栏目管理中管理员修改栏目名称、删除栏目和增加新的栏目,在用户管理中管理员修改用户级别和删除用户。
3.1流程设计
图2流程图
3.2功能设计
3.2.1功能图
功能方面分为前台系统跟后台系统,其总体功能模块和结构图图如下:
图3功能结构图
3.2.2功能概述
3.2.2.1用户注册登陆管理
该模块实现新用户的注册及登陆验证功能。
其中,注册用户会对用户输入的注册信息进行有效性验证,包括数据格式的有效性及逻辑有效性,例如检测用户名是否被占用等。
3.2.2.2普通用户模块
在线投稿:
作者可以直接在线投稿
个人管理:
用户可以修改自己的密码
3.2.2.3专家模块
在线投稿:
作者可以直接在线投稿。
个人管理:
用户可以修改自己的密码。
联系我们:
用户可以用在线编辑器编辑信件,用已配置好的发送编辑好的信息。
审核文章:
对于分配给其的稿件进行审批,给出意见。
不合格的作品可以直接删除。
3.2.2.4管理模块
在线投稿:
作者可以直接在线投稿
个人管理:
管理员可以修改自己的密码。
联系我们:
用户可以用在线编辑器编辑信件,用已配置好的发送编辑好的信息。
审核文章:
对于分配给其的稿件进行审批,给出意见。
不合格的作品可以直接删除。
人员管理:
对已注册的用户进行权限分配,分配用户为专家权限或是屏蔽该用户。
栏目管理:
管理员可以添加、删除分类板块容。
文章管理:
对所有文章进行查看,并具备删除功能。
3.2.2.5查询模块
已注册用户与未注册用户都可以对该的已审核文章进行查询阅读。
3.3架构设计
架构设计如下图:
图4架构设计图
此架构是在MVC三层架构上的基础上发展而来的。
在提出持久层之前,业务逻辑层在实现业务逻辑的同时,还需要访问数据库,这为业务逻辑层的扩展增加了难度。
有了持久层,业务逻辑层只需要负责业务逻辑的实现,对数据的操作则交给持久层,使每一段业务逻辑代码的目的更明确,当底层数据库发生变化时只需改变持久层代码,而不用修改业务逻辑层的代码。
3.4数据库设计
3.4.1数据库的需求分析
数据库的设计在整个中是及其重要的,数据库表的设计直接影响整个的性能。
依据项目的处理需求,对应数据表的设计及其功能如下:
稿件登记表——message
用户注册表——userinfo
通过审核稿件列表——cheekmessage
专家基本表——experts
稿件分类基本表——Class
3.4.2数据库的具体分析
基本表设计:
在本系统中,涉及到的数据项和表结构如下:
表1稿件登记表——message
列名
数据类型
长度
允许为空
主键
username
varchar
20
否
title
varchar
50
否
content
text
16
否
topictime
datetime
8
否
topid
int
4
否
是
class
varchar
50
是
ischeek
varchar
4
否
表2用户注册表——userinfo
列名
数据类型
长度
允许为空
主键
UserName
varchar
20
否
是
pwd
varchar
20
否
Permit
int
4
否
email
varchar
50
是
realname
varchar
50
是
gender
int
4
是
question
varchar
50
是
answer
varchar
50
是
phone
varchar
20
是
page
varchar
50
是
hobbies
varchar
是
selfinfo
varchar
是
regtime
datetime
8
是
isstop
int
4
否
表3通过审核稿件列表——cheekmessage
列名
数据类型
长度
允许为空
主键
name
varchar
20
否
title
varchar
50
否
content
text
16
否
topictime
datetimer
8
否
topid
int
4
否
是
class
varchar
50
是
表4专家基本表——experts
列名
数据类型
长度
允许为空
主键
name
varchar
20
否
是
class
varchar
40
是
表5稿件分类基本表——Class
列名
数据类型
长度
允许为空
Class_name
varchar
10
否
4系统实现
4.1实现概述
本系统采用B/S结构(Browser/Server,浏览器/服务器结构)和基于Web服务两种模式,是一个适用于Internet环境下的模型结构。
只要用户能连上Internet,便可以在任何时间、任何地点使用。
系统工作原理图如图所示:
图5系统工作原理图
4.2详细设计
系统的实现过程及相关代码实现方法和图例。
在系统分析的基础上,结合用户的使用状态,以及对现有网络系统的观察,得出本系统的功能模块结构图,此模块共分为三层结构,各结构之间紧密相连,共同建构了基于B/S结构的文章检索系统。
以下详细的描述了各个模块的实现代码以及详细的介绍。
4.2.1注册模块实现
在这个模块主要是给非注册用户来申请注册,成为本的成员用户。
涉及到了页面文件和控制文件是:
Register.jsp,RegProcessServlet.java
注册流程:
图6注册流程图
注册界面如下:
图7注册界面
Register.jsp
/*检查是否填写相关必填信息*/
functionCheck()
{
varusernaem=document.register.Username.value;
varpassword=document.register.Password.value;
if(usernaem=="")
{
window.alert("请填写你的登录名!
");
window.register.Username.focus();
returnfalse;
}
if(password=="")
{
window.alert("请填写密码!
");
window.register.Password.focus();
returnfalse;
}
if(document.register.Password.value!
=document.register.confpwd.value)
{
window.alert("请验证密码!
");
window.register.confpwd.focus();
returnfalse;
}
if(document.register.email.value=="")
{
window.alert("请填写你的!
");
window.register.email.focus();
returnfalse;
}
document.register.submit();
}
RegProcessServlet.java