基于JSP网上作业管理系统的设计与实现.docx
- 文档编号:8349443
- 上传时间:2023-01-30
- 格式:DOCX
- 页数:38
- 大小:838.14KB
基于JSP网上作业管理系统的设计与实现.docx
《基于JSP网上作业管理系统的设计与实现.docx》由会员分享,可在线阅读,更多相关《基于JSP网上作业管理系统的设计与实现.docx(38页珍藏版)》请在冰豆网上搜索。
基于JSP网上作业管理系统的设计与实现
第1章概述
从20世纪90年代以来,Internet逐步走上信息时代的历史舞台,它为人民提供了一种崭新的信息交流方式。
同时,也随着信息技术、网络技术和多媒体技术的飞速发展,网络与教育的有机结合逐步成为教育领域的一种发展趋势。
美国思科集丽总裁约翰·钱伯斯访问中国期间发表演讲时曾指出“是网络和教育决定了我们的未来”。
他认为,作为推进社会经济发展的两个核心动力一一“网络和教育”将深刻地改变一个民族的历史和命运,改变一个国家、企业、个人在未来时代的竞争力。
在方兴未艾的大潮中,谁把握了前沿的信息,谁就把握了未来,谁开创了面向未来的现代教育体系,谁将具有持续发展的能力!
在网络的推动下,教育也走上了信息化的时代。
从单机的CAI、ICAI、卫星电视、多媒体到教育网络,这无不说明整个教育界都在努力地运用各种最新的信息技术手段来优化教育与教学过程。
在这样的需要下,以Internet和多媒体为标志的现代远程教学就以一种全新的教学形式呈现在了世人面前。
它作为一种新型的教学模式,将最大限度利用现有教育资源,它是实现教育的大众化、现代化、终身化和国际化的新型教育形式。
现代远程教育是随着现代信息技术的发展而产生的一种新型教育形式,是构筑知识经济时代人们终身学习体系的主要手段。
我国真正意义上的现代远程教育是从1998年9月教育部批准清华大学、湖南大学、浙江大学、北京邮电大学作为现代远程教育首批试点高校开始的。
现代远程教育具有传统教学模式无可比拟的优点,它创造了一种全新的教学模式,打破了传统教学模式在时空上的限制,采用先进的教学手段和教学方法,可以实现适合学生个体发展的教学。
因此,这种与网络相结合的学习系统的开发与利用越来越受到世界各国的广泛重视。
软件工程的基本思想就是将软件当作一种工程产品来处理,从时间角度对软件开发和维护的复杂问题进行分解,把软件生命的漫长周期依次划分为若干个相对独立的阶段,并给每个阶段赋予明确而有限的任务。
从控制论的角度来说,这种思想就是在改造原有系统,设置系统状态观测点和系统控制点,以便了解当前所处的状态和控制系统的状态。
另外,软件工程在每个阶段结束时都进行严格的技术审查和管理审查,这实际上就是在比较当前状态与预想状态的差别,并根据这些差别来反馈调整该阶段的设计。
软件开发的一个共识,是把一个大的项目划分成一些小的模块,再把小的模块划分成更小的模块。
如果这些小模块是独立的(或者原来就是一个独立的项目),那么软件工程至少可以提高它的重用性。
任何软件系统要想获得较好的质量和较高的开发效率都必须遵循软件开发的一般规律。
开发一项系统工程所涉及的技术面较广,特别是诧此类与教学相关的系统,除了相关课程专业知识,还必须掌握各类实现技术,需要考虑的问题也较多,使软件开发的工作量加大,开发周期加长,需要提供一种手段来控制整个开发进程,以提高开发的成功率。
由于教学对象的变更,经常需要增加或修改部分功能,维护量大,因此要求软件系统的可维护性高。
另外,为了尽量减少系统开发与维护人员的交接问题,避免无形的浪赞,该软件系统必须具有较高的可读性。
这就需要软件工程来有效合理的组织整个软件开发过程,这是一种指导软件开发的一种工程思想,软件工程的思想和原则可以明显提高软件的可靠性、可维护性及软件开发的成功率,是解决以上问题的有效方法。
本文就是在软件工程的思想和原则的基础上分析设计了一套网上作业系统,以此来探讨相关实现技术。
第2章系统技术概述
2.1分布式应用系统
纵观人类计算扭的发展历史,每隔十年至十五年,信息产业就公发生周期性的变革,1950年至1970年期间,主要采用大型主机一终端的体系结构,应用系统则采用单一、集中的方式为用户提供资源共享服务。
80年代初期,开放系统与关系型数据库管理系统被大量采用,有别于集中式系统,应用程序逻辑分散在主从两端。
随着Windows的普及,90年代则是图形化的应用时代,C1ient/Server体系结构也被广泛采用。
90年代后期,信息产业出现了分布式对象技术,应用程序可以分布在不同的系统平台上,通过分布式技术实现异构平台间对象的相互通信。
将企业已有系统集成于分布式系统,可以极大地提高企业应用系统的扩展性。
90年代末出现的多层分布式应用进一步简化应用系统的开发指明了方向。
目前国内外的各类系统较多,从结构上来看,主要是客户机/服务器结构(Client/Server)和浏览器/服务器(Browser/Server)结构。
2.1.1C/S结构与B/S结构
1.C/S结构
C/S(Client/Server)结构,即大家熟知的客户机和服务器结构。
它是软件系统体系结构,通过它可以充分利用两端硬件环境的优势,将任务合理分配到Client端和Server端来实现,降低了系统的通讯开销。
目前大多数应用软件系统都是C1ient/Server形式的两层结构,出于现在的软件应用系统正在向分布式的Web应用发展,Web和Client/Server应用都可以进行同样的业务处理,应用不同的模块共享逻辑组件;因此,内部的和外部的用户都可以访问新的和现有的应用系统。
通过现有应用系统中的逻辑可以扩展出新的应用系统。
这也就是目前应用系统的发展方向。
传统的C/S体系结构虽然采用的是开放模式,但这只是系统开发一级的开放性,在特定的应用中无论烧Client端还是Server端都还需要特定的软件支持。
由于没能提供用户真正期望的开放环境,C/S结构的软件需要针对不同的操作系统系统开发不同版本的软件,加之产品的更新换代十分快,已经很难适应百台电脑以上局域网用户同时使用。
而且代价高,效率低。
2.B/S结构
B/S(Browser/Server)结构即浏览器和服务器结构。
就是只安装维护一个服务器(Server),而客户端采用浏览器(Browse)运行软件。
它是随着Internet技术的兴起,对C/S结构的一种变化和改进。
主要利用了不断成熟的WWW浏览器投术,结合多种Script语言(VBScript、JavaScript…)和ActiveX技术,是一种全新的软件系统构造技术。
B/S三层体系结构采用三层客户/服务器结构,在数据管理层(Server)和用户界面层(C1ient)增加了一层结构,称为中间件(Middleware),使整个体系结构成为三层。
三层结构是伴随着中间件技术的成熟而兴起的,核心概念是利用中间件将应用分为表示层、业务逻辑层和数据存储层三个不同的处理层次。
三个层次的划分是从逻辑上分的,具体的物理分法可以有多种组合。
中闻件作为构造三层结构应用系统的基础平台,提供了以下主要功能:
负责客户机与服务器、服务器与服务嚣间的连接和通信;实现应用与数据库的高效连接:
提供一个三层结构应用的开发、运行、部署和管理的平台。
这种三层结构在层与层之间相互独立,任何一层的改变不会影响其它层的功能。
这样就大大简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本(TCO)。
在B/S体系结构系统中,用户通过浏览器向分布在网络上的许多服务器发出请求,服务器对浏览器的请求进行处理,将用户所需信息返回到浏览器。
而其余如数据请求、加工、结果返回以及动态网页生成、对数据库的访问和应用程序的执行等工作全部由WebServer完成。
随着Windows将浏览器技术植入操作系统内部,这种结构已成为当今应用软件的首选体系结构。
显然B/S结构应用程序相对于传统的C/S结构应用程序是一个非常大的进步。
B/S结构的主要特点是分布性强、维护方便、开发简单且共享性强、总体拥有成本低。
以目前的技术看,局域网建立B/S结构的网络应用,并通过Internet/Intranet模式下数据库应用,相对易于把握、成本也是较低的。
它是一次性到位的开发,能实现不同的人员,从不同的地点,以不同的接入方式(比如LAN,WAN,Internet/Intranet等)访问和操作共同的数据库;它能有效地保护数据平台和管理访问权限,服务器数据库也很安全,B/S架构的管理软件更是方便、快捷、高效。
3.管理软件主流技术
管理软件的主流技术与管理思想一样,也经历了三个发展时期。
首先,界面技术从上世纪DOS字符界面到Windows图形界面(或图形用户界面GUI),直至Browser浏览器界面三个不同的发展时期。
其次,今天所有电脑的浏览器界面,不仅直观和易于使用,更主要的是基于浏览器平台的任何应用软传其风格都是一样的,使用人对操作培训的要求不高,而且软件可操作性强,易于识别;再者,平台体系结构也从过去单用户发展到今天的文件/服务器(F/S)体系、客户机/服务器(C/S)体系和浏览器/服务器(B/S)体系。
2.1.2C/S与B/S之优劣
C/S和B/S是当今世界开发模式技术架构的两大主流技术。
C/S是美国Borland公司最早研发,B/S是美国微软公司研发。
目前,这两项技术以被世界各国所掌握,国内公司以C/S和B/S技术开发出产品也很多。
这两种技术都有自
己的优势和劣势。
1.C/S架构软件的优势与劣势
应用服务器运行数据负荷较轻。
最简单的C/S体系结构的数据库应用由两部分组成,即客户应用程序和数据库服务器程序。
当需要对数据库中的数据进行任何操作时,客户程序就自动地寻找服务器程序,并向其发出请求,服务器程序根据预定的规则做出应答,送回结果,应用服务器运行数据负荷较轻。
数据的储存管理功能较为透明。
在数剧库应用中,数据的储存管理功能,是由服务器程序和客户应用程序分别独立进行的,前台应用可以违反的规则,并且通常把那些不同的(不管是已知还是未知的)运行数据,在服务器程序中不集中实现,麻烦的事情都交给了服务器和网络。
在C/S体系下,数据库不能真正成为公共、专业化的仓库,它受到独立的专门管理。
高昂的维护成本且投资大——这是C/S结构的劣势。
首先,采用C/S架构,要选择适当的数据库平台来实现数据库数据的真正“统一”,使分布于两地的数据同步完全交由数据库系统去管理,但逻辑上两地的操作者要直接访问同一个数据库才能有效实现,有这样一些问题,如果需要建立“实时”的数据同步,就必须在两地间建立实时的通讯连接,保持两地的数据库服务器在运行,网络管理工作人员既要对服务器维护管理,又要对客户端维护和管理,这需要高昂的投资和复杂的技术支持,维护成本很高,维护任务量大。
2.B/S架构软件的优势与劣势
维护和升级方式简单。
目前,软件系统的改进和升级越来越频繁,B/S架构的产品明显体现着更为方便的特性。
B/S架构的软件只需要管理服务器就行了,所有的客户端只是浏览器,根本不需要做任何的维护。
所以客户机越来越“瘦”,而服务器越来越“胖”是将来信息化发展的主流方向。
今后,软件升级和维护会越来越容易,而使用起来会越来越简单,这对用户人力、物力、时间、费用的节省是显而易见的,惊人的。
因此,维护和升级革命的方式是“瘦”客户机,“胖”服务器。
成本降低,选择更多。
大家都知道windows在桌面电脑上几乎一统天下,浏览器成为了标准配置,但在服务器操作系统上windows并不是处于绝对的统治地位。
现在的趋势是凡使用B/S架构的应用管理软件,只需安装在服务器上即可,而且安全性高。
所以服务器操作系统的选择是很多的,不管选用那种操作系统都可以让大部分人正常使用。
应用服务器运行数据负荷较重。
由于B/S架构管理软件只安装在服务器端(Server)上,网络管理人员只需要管理服务器就行了,用户界面主要事务逻辑在服务器(Server)端完全通过www浏览器实现,极少部分事务逻辑在前端(Browser)实现,所有的客户端只有浏览器,网络管理人员只需要做硬件维护。
但是,应用服务器运行数据负荷较重,一旦发生服务器“崩溃”等问题,后果不堪设想。
因此,许多单位都备有数据库存储服务器,以防万一。
2.1.3C/S与B/S的区别
Client/Server是建立在局域网的基础上的,Browser/Server是建立在广域网的基础上的。
1.硬件环境不同:
C/S一般建立在专用的网络上,小范围里的网络环境,局域网之间再通过专门服务器提供连接和数据交换服务。
B/S建立在广域网之上的,不必是专门的网络硬件环境,例如电话上网,租用设备,信息自己管理,有比C/S更强的适应范围,一般只要有操作系统和浏览器就行。
2.对安全要求不同
C/S一般面向相对固定的用户群,对信息安全的控制能力很强。
一般高度机密的信息系统采用C/S结构适宜,可以通过B/S发布部分可公开信息。
B/S建立在广域网之上,对安全的控制能力相对弱,面向是不可知的用户
群。
3.对程序架构不同
C/S程序可以更加注重流程,可以对权限多层次校验,对系统运行速度可以较少考虑。
B/S对安全以及访问速度的多重的考虑,建立在需要更加优化的基础之上。
比C/S有更高的要求,B/S结构的程序架构是发展的趋势,从MS的.Net系列的BizTalk2000,Exchange2000等,全面支持网络的构件搭建的系统。
SUN和IBM推出的JavaBean构件技术等,使B/S更加成熟。
4.软件重用不同
C/S程序可以不可避免的整体性考虑,构件的重用性不如在B/S要求下的构件的重用性好。
B/S对的多重结构,要求构件相对独立的功能。
能够相对较好的重用。
就如买来的餐桌可以再利用,而不是做在墙上的石头桌子。
5.系统维护不同
系统维护是软件生存周期中,开销大,相当重要。
C/S程序由于整体性,必须整体考察,处理出现的问题以及系统升级难,可能是再做一个全新的系统。
B/S构件组成方面构件个别的更换,实现系统的无缝升级。
系统维护开销
减到最小,用户从网上自己下载安装就可以实现升级。
6.处理问题不同
C/S程序可以处理用户面固定,并且在相同区域,安全要求高的需求,与操作系统相关,应该都是相同的系统。
B/S建立在广域网上,面向不同的用户群,分散地域,这是C/S无法做到的,与操作系统平台关系最小。
7.用户接口不同
C/S多是建立在Window平台上,表现方法有限,对程序员普遍要求较高。
B/S建立在浏览器上,有更加丰富和生动的表现方式与用户交流,并且大部分难度减低,降低开发成本。
2.2JSP技术
2.2.1简介
JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。
网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。
JSP将网页逻辑与网页设计和显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。
Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序段,然后将执行结果连同JSP文件中的HTML代码一起返回给客户。
插入的Java程序段可以操作数据库、重新定向网页等,以实现建立动态网页所需要的功能。
JSP与JavaServlet一样,是在服务器端执行的,通常返回给客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览。
JSP页面由HTML代码和嵌入其中的Java代码所组成。
服务器在页面被客户端请求以后对这些Java代码进行处理,然后将生成的HTML页面返回给客户端的浏览器。
JavaServlet是JSP的技术基础,而且大型的Web应用程序的开发需要JavaServlet和JSP配合才能完成。
JSP具备了Java技术的简单易用,完全的面向对象,具有平台无关性且安全可靠,主要面向因特网的所有特点。
2.2.2JSP内置对象
JSP提供了九个内建对象,供用户直接调用:
request对象:
该对象封装了用户提交的信息,通过调用该对象相应的方法可以获取封装的信息,即使用该对象可以获取用户提交信息。
response对象:
对客户的请求做出动态的响应,向客户端发送数据。
session对象:
JSP的内置对象,它在第一个JSP页面被装载时自动创建,完成会话期管理。
application对象:
服务器启动后就产生了这个application对象,当客户在所访问的网站的各个页面之间浏览时,这个application对象都是同一个,直到服务器关闭。
out对象:
out对象是一个输出流,用来向客户端输出数据。
out对象用于各种数据的输出。
pagejava.lang.Object:
对应this关键字。
JSP网页本身,page对象是当前页面转换后的Servlet类的实例。
从转换后的Servlet类的代码中,可以看到这种关系:
Objectpage=this;在JSP页面中,很少使用page对象。
Config:
javax.servlet.ServletConfig的实例,该实例代表该JSP的配置信息。
常用的方法有getInitParameter(StringparamNarne)及getInitParameternarnes()等方法。
事实上,JSP页面通常无须配置,也就不存在配置信息。
因此,该对象更多地在Servlet中有效。
Exception:
java.lang.Throwable的实例,该实例代表其他页面中的异常和错误。
只有当页面是错误处理页面,即编译指令page的isErrorPage属性为true时,该对象才可以使用。
常用的方法有getMessage()和printStackTrace()等。
pageContext:
javax.servlet.jsp.PageContext的实例,该对象代表该JSP页面上下文,使用该对象可以访问页面中的共享数据。
常用的方法有getServletContext()和getServletConfig()等。
2.2.3JSP的技术方法
为了快速方便地进行动态网站的开发,JSP在以下几个方面做了改进,使其成为快速建立跨平台的动态网站的首选方案。
1.将内容的生成和显示进行分离
用JSP技术,Web页面开发人员可以使用HTML或者XML标识来设计和格式化最终页面,并使用JSP标识或者小脚本来生成页面上的动态内容(内容是根据请求变化的,例如请求账户信息或者特定的一瓶酒的价格等)。
生成内容的逻辑被封装在标识和JavaBeans组件中,并且捆绑在脚本中,所有的脚本在服务器端运行。
由于核心逻辑被封装在标识和JavaBeans中,所以Web管理人员和页面设计者,能够编辑和使用JSP页面,而不影响内容的生成。
在服务器端,JSP引擎解释JSP标识和脚本,生成所请求的内容(例如,通过访问JavaBeans组件,使用JDBC技术访问数据库或者包含文件),并且将结果以HTML(或者XML)页面的形式发送回浏览器。
这既有助于作者保护自己的代码,又能保证任何基于HTML的Web浏览器的完全可用性。
2.可重用组件
绝大多数JSP页面依赖于可重用的、跨平台的组件(JavaBeans或者EnterpriseJavaBeans组件)来执行应用程序所要求的复杂的处理。
开发人员能够共享和交换执行普通操作的组件,或者使得这些组件为更多的使用者和客户团体所使用。
基于组件的方法加速了总体开发过程,并且使得各种组织在他们现有的技能和优化结果的开发努力中得到平衡。
3.采用标识
Web页面开发人员不会都是熟悉脚本语言的编程人员。
JSP技术封装了许多功能,这些功能是在易用的、与JSP相关的XML标识中进行动态内容生成所需要的。
标准的JSP标识能够访问和实例化JavaBeans组件,设置或者检索组件属性,下载Applet,以及执行用其他方法更难于编码和耗时的功能。
4.适应平台
几乎所有平台都支持Java,JSP+JavaBeans几乎可以在所有平台下通行无阻。
从一个平台移植到另外一个平台,JSP和JavaBeans甚至不用重新编译,因为Java字节码都是标准的与平台无关的。
5.数据库连接
Java中连接数据库的技术是JDBC,Java程序通过JDBC驱动程序与数据库相连,执行查询、提取数据等操作。
Sun公司还开发了JDBC-ODBCbridge,利用此技术Java程序可以访问带有ODBC驱动程序的数据库,目前大多数数据库系统都带有ODBC驱动程序,所以Java程序能访问诸如Oracle、Sybase、MSSQLServer和MSAccess等数据库。
此外,通过开发标识库,JSP技术可以进一步扩展。
第三方开发人员和其他人员可以为常用功能创建自己的标识库。
这使得Web页面开发人员能够使用熟悉的工具和如同标识一样的执行特定功能的构件来进行工作。
JSP技术很容易整合到多种应用体系结构中,以利用现存的工具和技巧,并且能扩展到支持企业级的分布式应用中。
作为采用Java技术家族的一部分,以及Java2(企业版体系结构)的一个组成部分,JSP技术能够支持高度复杂的基于Web的应用。
由于JSP页面的内置脚本语言是基于Java的,而且所有的JSP页面都被编译成为JavaServlets,所以JSP页面具有Java技术的所有好处,包括健壮的存储管理和安全性。
作为Java平台的一部分,JSP拥有Java编程语言“一次编写,各处运行”的特点。
2.2.4JSP的应用模型
利用JSP技术,动态信息由JSP页面来表现,JSP页面由安装在Web服务器或者使用JSP的应用服务器上的JSP引擎执行。
JSP引擎接受客户端对JSP页面的请求,并且生成JSP页面作为对客户端的响应。
JSP页面通常被编译成为JavaServlets,这是一个标准的Java扩展。
页面开发人员能够访问全部的Java应用环境,以利用Java技术的扩展性和可移植性。
当JSP页面第一次被调用时,如果它还不存在,就会被编译成为一个JavaServlets类,并且存储在服务器的内存中。
这就使得在接下来的对该页面的调用中,服务器会有非常快的响应(这避免了CGI-BIN为每个HTTP请求生成一个新的进程的问题)。
JSP页面可以包含在多种不同的应用体系结构或者模型中,可以用于由不同协议、组件和格式所组成的联合体中。
基于JSP的动态信息发布技术是一个开放的、可扩展的建立动态Web页面的标准。
不论采用什么创建工具,开发人员都可以使用JSP页面来创建可移植的Web应用,在不同的Web应用服务器上运行。
2.3数据库的选择
在本系统中,我选择MySQL关系数据库作为数据存储的工具。
MySQL是一个小型关系型数据库管理系统。
MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。
MySQL的SQL“结构化查询语言”。
SQL是用于访问数据库的最常用标准化语言。
MySQL软件采用了GPL(GNU通用公共许可证)。
由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。
MySQL的系统特性:
1.使用C和C++编写,并使用了多种编译器进行测试,保证源代码的可移植性
2.支持AIX、FreeBSD、HP-UX、Linux、MacOS、NovellNetware、OpenBSD、OS/2Wrap、Solaris、Windows等多种操作系统
3.为多种编程语言提供了API。
这些编程语言包括C、C++、Python、Java、Perl、PHP、Eiffel、Ruby和Tcl等。
4.支持多线程,充分利用CPU资源
5.优化的SQL查询算法,有效地提高查询速度
6.既能够作为一个单独的应用程序应用在客户端服务器网络环境中,也能够作为一个库而嵌入到其他的软件中提供多语言支持,常见的编码如中文的GB2312、BIG5,日文的Shift_JIS等都可以用
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 JSP 网上 作业 管理 系统 设计 实现
![提示](https://static.bdocx.com/images/bang_tan.gif)