tarena讲师考评系统设计_第1页
tarena讲师考评系统设计_第2页
tarena讲师考评系统设计_第3页
tarena讲师考评系统设计_第4页
tarena讲师考评系统设计_第5页
已阅读5页,还剩57页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘要考评是当今教学管理的核心问题,现以成为教学管理的重要组成部分。随着教学管理的科学发展,学生对讲师进行点评,讲师对自己在教学过程中的了解,以及领导对讲师的考核,这些互动要求迫切需要一个能够真实反应学生对老师意见的考评系统。本考评系统建立在以实绩为内容、综合评分为基础、现代计算技术为手段的基础上,解决了当前考评管理中无法按实绩、无法综合评价和计量考评工作量大、不易操作等难题。在ECLIPSE开发环境下,采用了JSP、STRUTS、SPRING技术,以HIBERNATE连接,访问MYSQL数据库。功能实现方面具体分为学生点评模块,讲师模块,项目经理模块,ADMIN模块,MANAGER模块。该系统界面美观、操作简单、使用方便。关键词考评系统,ECLIPSE,JSP,STRUTS,SPRING,MYSQLABSTRACTEVALUATIONOFMANAGEMENTISTHECOREISSUEOFTEACHING,TEACHINGMANAGEMENTISTOBECOMEANIMPORTANTPARTWITHTHEDEVELOPMENTOFTHESCIENTIFICMANAGEMENTOFTEACHING,STUDENTSOFTHELECTURERSFORCOMMENTS,ALECTURERINTHETEACHINGOFTHEIROWNINTHEPROCESSOFUNDERSTANDING,ANDLEADINGLECTURERONTHEASSESSMENT,THESEINTERACTIONSCANREQUESTANURGENTNEEDFORAREALRESPONSETOTHEVIEWSOFSTUDENTSTOTEACHEREVALUATIONSYSTEMTHEEVALUATIONSYSTEMINORDERTOESTABLISHPERFORMANCEASTHECONTENT,THECOMPOSITESCOREISBASEDONMODERNTECHNOLOGYASAMEANSONTHEBASISOFRESOLVINGTHECURRENTEVALUATIONBYTHEMANAGEMENTOFPERFORMANCECANNOT,CANNOTBECOMPREHENSIVEEVALUATIONANDMEASUREMENTOFTHEHKEAAHEAVYWORKLOADANDDIFFICULTTOOPERATE,ANDOTHERPROBLEMSINTHEECLIPSEDEVELOPMENTENVIRONMENT,USINGTHEJSP,STRUTS,SPRING,HIBERNATECONNECTEDTOTHEVISITMYSQLDATABASEACHIEVINGSPECIFICFUNCTIONISDIVIDEDINTOMODULESCOMMENTSSTUDENTS,LECTURERSMODULES,PROJECTMANAGERMODULE,ADMINMODULE,MANAGERMODULETHESYSTEMINTERFACEBEAUTIFUL,SIMPLE,EASYTOUSEKEYWORDSEVALUATIONSYSTEM,ECLIPSE,JSP,STRUTS,SPRING,MYSQL目录1绪论42开发环境及开发工具的介绍421ECLIPSE和MYECLIPSE简介4211ECLIPSE的特点5212ECLIPSE的环境配置6213ECLIPSE体系结构6214ECLIPSEMYECLIPSE722JSP概述8222JSP的特点923STRUTS概述10231STRUCT工作原理11232STRUTS的特点12STRUTS有如下的特点1224HIBERNATE概述12241HIBERNATE的工作原理13242HIBERNATE的特点1425SPRING概述14251SPRING的工作原理16252SPRING的特点173MYSQL数据库编程1831MYSQL简介1832MYSQL数据库常用命令194TARENA讲师考评系统需求分析2041系统设计思想2042系统界面要求2143TARENA讲师考评系统要求2244TARENA讲师考评系统角色及其功能分析225TARENA讲师考评系统的详细设计3151TARENAY讲师考评系统的数据库设计3152TARENA讲师考评系统模块的划分3453TARENA讲师考评系统主要模块的具体实现3454TARENA讲师考评系统的测试47总结与体会52致谢53参考文献54附录一英文资料原文55附录二英文资料译文621绪论21世纪初期,既是我国经济快速、健康发展的重要时期,也是我国高等教育以及企业培训快速、健康发展的关键时期,高等学校与企业必须与时俱进,更新观念,创新制度,深化改革,努力提高人才培养质量,这不仅是新时期经济社会发展的客观要求,更是高等学校与企业改革与发展的必然选择。而由此引起的一系列问题值得我们思考怎么去管理讲师怎么去评价讲师的工作可以采用哪些有效的激励办法和因素怎么建立起讲师的绩效考核办法和激励办法这迫切需要着一个高效合理的考评系统。于是依据对达内培训公司的了解,我们选择了TARENA讲师考评系统作为毕业设计课题。通过考评系统的实现,可以真实的反应各学生对讲师的要求和意见,也能让讲师清晰的了解自己在教学过程中存在的一些问题和同学对自己的真实感受。考评系统给学生,讲师们提供了一个互动的平台,对教学工作有着很强的促进作用。2开发环境及开发工具的介绍21ECLIPSE和MYECLIPSE简介1概述ECLIPSE是个集成开发环境(INTEGRATEDDEVELOPMENTENVIRONMENT),其前身是IBM的VISUALAGEFORJAVAVA4J。ECLIPSE是可扩展的体系结构,可以集成不同软件开发供应商开发的产品,将他们开发的工具和组件加入到ECLIPSE平台中。随着JAVA应用的广泛,各大主要软件供应商都参与到ECLIPSE架构开发中,使得ECLIPSE插件数量与日增加。其中,IBM的WEBSPHERESTUDIOWORKBENCH是突出的例子。ECLIPSE平台的免费,架构的成熟,行业协会ECLIPSE基金会的支持,使得很多的JAVA开发采用了ECLIPSE架构。其他的JAVA集成开发环境有JBUILDER、WEBSPHERSTUDIO、NETBEANS。然而ECLIPSE以其强大的可扩展性和开放性脱颖而出,拥有为数众多的支持者,它的免费也被许多中小型企业所青睐。2ECLIPSE和MYECLIPSE的结合MYECLIPSE是一个商业的J2EE开发插件,建立在ECLIPSE的基础上,支持HTML,CSS,JS,JSP,SERVLET,JAVA,J2EE,EJB,WEBSERVICES等等,它的功能非常之强大,和ECLIPSE结合十分完美。在MYECLIPSE里面还可以建立与数据库的连接和查询操作,而且还自带了WEB浏览器,比如你在编写一些基本SERVLET时,不用打开IE新窗口了,直接在ECLIPSE里用WEB浏览器就可以看到。ECLIPSE是一个集成的进行JAVA开发的IDE开发环境,并且是开源的,MYECLIPSE是一种插件,为J2EE开发提供一种高级编程环境,可以轻松的完成STRUTS,HIBERNATE,SPRING布局,编写STRTUSCONFIGXML。ECLIPSE是一个IDE(INTEGRATEDDEVELOPINGENVIRONMENT),而这个IDE是允许安装第三方开发的插件来使自身的功能得到扩展和增强的,而MYECLIPSE就是其中的一种有名的插件集之一,MYECLIPSE将开发者常用到的一些有用的插件都集合起来,但它是收费的。MYECLIPSE的实际价值来自包含的发布包中的大量的工具。还包含编辑HIBERNATE配置文件和执行SQL语句的工具。211ECLIPSE的特点LECLIPSE是开放源代码的软件。这意味着ECLIPSE不仅可以免费使用,还可以通过研究源代码学习世界上顶尖开发人员的编程技术,并可以共享遍布全球的开发人员所贡献的公共开放源代码库。2ECLIPSE是真正可扩展并可配置的。ECLIPSE采用插件机制,犹如一个花瓶,你可以随时向花瓶里面插花,也可以很容易将不再需要的花取出。目前,互联网上免费的、收费的插件遍地开花,插件开发工作在国内外也如火如荼。3ECLIPSE支持众多的开发语言而不仅仅是JAVA。ECLIPSE只是给开发人员提供了一个能够扩展系统功能的最小核心,基于扩展点的插件体系结构使得ECLIPSE支持多种语言成为可能。只要安装相应语言的插件,ECLIPSE就可以支持该种语言的开发。目前,ECLIPSE已经可以支持C、COBOL、PHP、PERL、PYTHON等多种语言。4ECLIPSE提供了对多重平台特性的支持。开发者可以使用他们感觉最舒适、最熟悉的平台,例如WINDOWS、LINUX、MACOS等。ECLIPSE对每个平台都有其单独的图形工具包,这使得应用程序具有接近本地操作系统的外观和更好的性能。5基于业界领先的OSGI规范。OSGI规范最早由SUNMICROSYSTEMS、IBM、爱立信等于1999年推出,其服务平台包括服务网关、汽车、移动电话、工业自动化、建筑物自动化、PDA网格计算、娱乐(如IPRONTO)和IDE等。基于OSGI的系统以微内核形式运行,因而能够轻松实现软件业界梦寐以求的可热插拔、动态改变行为、稳定高效的系统。ECLIPSE从31开始,毅然抛弃了其原有的已经获得业界认可的框架,采用OSGI作为其架构。从ECLIPSE32版本开始,ECLIPSE提供了基于OSGI开发的支持,开发者可以利用其开发基于OSGI的系统了。6ECLIPSE美轮美奂的人机界面受到广泛赞誉。ECLIPSE提供了全新的SWT/JFACEAPI(而不是AWT/SWING),一改SWT/SWING单调、沉闷的界面风格,使得开发基于本地的具有丰富图形界面的应用程序成为可能,犹如一股春风吹进JAVA的桌面开发领域,给人耳目一新的感觉。7ECLIPSE由业界领先者推出,具有强大的行业力量。ECLIPSE基金会吸收了大量学术研究机构、商业组织,领导ECLIPSE的长远规划和发展,并确保ECLIPSE处于软件工具行业的领先地位。212ECLIPSE的环境配置(1)先装J2SDK1_4_2_06WINDOWSI586PEXE配置好(2)在装JAKARTATOMCAT5028EXE(3)在装MYECLIPSEENTERPRISEWORKBENCHINSTALLER_40GA_E31EXE213ECLIPSE体系结构ECLIPSE平台体系结构主要由5部分组成,分别是平台运行库、工作区、工作台、团队支持和帮助。图11为ECLIPSE体系结构图。在运行时内核是整个架构的核心,其他部件都是以插件方式来实现的。ECLIPSE采用动态加载机制,即只有需要的才加载,这样可以降低启动时间,提高资源使用效率。工作空间插件即所谓的工作区,主要负责管理用户资源,例如用户创建项目的管理、文件变更等,并负责通知其他插件关于资源变更的信息。工作台插件是ECLIPSE提供的用户界面。它使用标准窗口工具包(SWT)和一个更高级的API(JFACE)构建的。SWT是JAVA的SWING/AWT的非标准替代者,JFACE则以SWT为基础,但更易于使用。团队支持插件负责提供版本控制和配置管理支持。它允许用户根据需要添加视图,并与允许用户使用的任何版本控制系统交互。帮助插件允许以HTML文件形式添加文档,并提供了一个附加的导航结构以便用户使用帮助功能搜索相关信息。214ECLIPSEMYECLIPSE简单而言,MYECLIPSE是ECLIPSE的插件,也是一款功能强大的J2EE集成开发环境,支持代码编写、配置、测试以及除错。GENUITEC发布了MYECLIPSEENTERPRISEWORKBENCH50,更智能、更快捷、更简单和更便宜的J2EE工具的新版本的诞生。它的价格对于个人和企业开发人员来说都是非常有吸引力的。这是J2EEIDE市场一个重量级的选手。通过增加UML双向建模工具、WYSIWYG的JSP/STRUTSDESIGNER、可视化的HIBERNATE/ORM工具、SPRING和WEBSERVICES支持,以及新的ORACLE数据库开发,MYECLIPSE50继续为业界提供全面的产品。22JSP概述如果说SERVLET是含有HTML的JAVA代码,那么JSP就是含有JAVA代码的HTML。尽管JSP页面和SERVLET之间存在巨大而明显的差异,但实际上它们是一回事。JSP页面最终要转换成SERVLET,并进行编译,在请求期间执行的实际上是编译后的SERVLET。因而,编写JSP页面实际上不过是另一种编写SERVLET的方式。但是它们并非在所有的情况下都同样适用。将静态HTML从动态内容中分离开来比单独使用SERVLET有很多好处,同时,JSP页面中使用的模式与竞争技术相比有好几项优点。在一个JSP文件第一次被请求时,JSP引擎把该JSP文件转换成为一个SERVLET。而这个引擎本身也是一个SERVLET。JSP的运行过程如下所示(1)JSP引擎先把该JSP文件转换成一个JAVA源文件(SERVLET),在转换时如果发现JSP文件有任何语法错误,转换过程将中断,并向服务端和客户端输出出错信息。(2)如果转换成功,JSP引擎用JAVAC把该JAVA源文件编译成相应的CLASS文件。(3)创建一个该SERVLET(JSP页面的转换结果)的实例,该SERVLET的JSPINIT方法被执行,JSPINIT方法在SERVLET的生命周期中只被执行一次。(4)JSPSERVICE方法被调用来处理客户端的请求。对每一个请求,JSP引擎创建一个新的线程来处理该请求。如果有多个客户端同时请求该JSP文件,则JSP引擎会创建多个线程。每个客户端请求对应一个线程。以多线程方式执行可以大大降低对系统的资源需求,提高系统的并发量及响应时间。但不过也应该注意多线程的编程限制,由于该SERVLET始终驻于内存,所以响应是非常快的。(5)如果JSP文件被修改了,服务器将根据设置决定是否对该文件重新编译,如果需要重新编译,则将编译结果取代内存中的SERVLET,并继续上述处理过程。(6)虽然JSP效率很高,但在第一次调用时由于需要转换和编译而有一些轻微的延迟。此外,在任何时候如果由于系统资源不足的原因,JSP引擎将以某种不确定的方式将SERVLET从内存中移去。当这种情况发生时JSPDESTROY方法首先被调用。(7)然后SERVLET实例便被标记加入“垃圾收集”处理。可在JSPINIT中进行一些初始化工作,如建立与数据库的连接,或建立网络连接,从配置文件中取一些参数等,在JSPDESTORY中释放相应的资源。221JSP和SERVLET的比较1JSP以文本为主,主要用于画界面2JSP可以人工扩充,而SERVLET是固定的3JSP内核是SERVLET,所以也是基于HTTP协议的请求响应循环4由HTML(CSS、XML)、JAVACODE、JSP标签组成5JSP有自定义标签(ASP没有)6CGI和SERVLET以代码为主,代码中嵌文本;JSP中文本中嵌代码7JSP擅长于表现,而短于逻辑;而SERVLET一般用作CONTORLER和DIAPATCH控制和流转;所以在JSP中写界面元素,而逻辑方面由SERVLET完成。8JSP不需要写JAVA文件、不需要编译和配置,它被封装到了容器内部9JSP代码不可重用JSP的运行过程(1)翻译(转换)阶段JSPJAVA(2)编译阶段JAVACLASS(3)运行阶段运行编译后生成的CLASS文件。以上三个阶段均由JSP引擎来执行;JSP引擎由WEB服务器所提供,它实际上就是一个SERVLET(该SERVLET在CONF/WEBXML中配置)222JSP的特点1简便性和有效性JSP动态网页的编写与一般的静态HTML的网页编写是十分相似的。只是在原来的HTML网页中加入一些JSP专有的标签,或是一些脚本程序(此项不是必需的)。这样,一个熟悉HTML网页编写的设计人员可以很容易进行JSP网页的开发。而且开发人员完全可以不自己编写脚本程序,而只是通过JSP独有的标签使用别人已写好的部件来实现动态网页的编写。这样,一个不熟悉脚本语言的网页开发者,完全可以利用JSP做出漂亮的动态网页。而这在其他的动态网页开发中是不可实现的。2程序的独立性JSP是JAVAAPI家族的一部分,它拥有一般的JAVA程序的跨平台的特性。换句话说,就是拥有程序的对平台的独立性,即WRITEONCE,RUNANYWHERE。3程序的兼容性JSP中的动态内容可以各种形式进行显示,所以它可以为各种客户提供服务,即从使用HTML/DHTML的浏览器,到使用WML的各种手提无线设备(例如,移动电话和个人数字设备PDA),再到使用XML的B2B应用,都可以使用JSP的动态页面。4程序的可重用性在JSP页面中可以不直接将脚本程序嵌入,而只是将动态的交互部分作为一个部件加以引用。这样,一旦这样的一个部件写好,它可以为多个程序重复引用,实现了程序的可重用性。现在,大量的标准JAVABEANS程序库就是一个很好的例证。23STRUTS概述STRUTS使用MODEL2架构。STRUTS的ACTIONSERVLET控制导航流。其他STRUTS类,比如ACTION,用来访问业务逻辑类。当ACTIONSERVLET从容器接收到一个请求,它使用URI或者路径“PATH”来决定那个ACTION将用来处理请求。一个ACTION可以校验输入,并且访问业务层以从数据库或其他数据服务中检索信息。为校验输入或者使用输入来更新数据库,ACTION需要知道什么值被提交上来。它并不是强制每个ACTION都要从请求中抓取这些值,而是由ACTIONSERVLET将输入绑定到JAVABEAN中。输入BEAN是STRUTSACTIONFORM类的子类。ACTIONSERVLET通过查找请求的路径可以决定使用哪个ACTIONFORM,ACTION也是通过同样的方法选取的。ACTIONFORM扩展了ORGAPACHESTRUTSACTIONACTIONFORM类。每个请求都必须以HTTP响应进行应答。通常,STRUTSACTION并不自行渲染响应信息,而是将请求转发到其他资源,比如JSP页面。STRUTS提供一个ACTIONFORWARD类,用来将一个页面的路径保存为逻辑名称。当完成业务逻辑后,ACTION选择并向SERVLET返回一个ACTIONFORWARD。SERVLET然后使用保存在ACTIONFORWARD对象中的路径来调用页成响应。STRUTS将这些细节都绑定在一个ACTIONMAPPING对象中。每个ACTIONMAPPING相对于一个特定的路径。当某个路径被请求时,SERVLET就查询ACTIONMAPPING对象ACTIONMAPPING对象告诉SERVLET,哪些个ACTION,ACTIONFORM,和ACTIONFORWAR要被本次请求使用。STRUTS由一组相互协作的类、SERLVET以及丰富的标记库JSPTAGLIB和独立于该框架工作的实用程序类VALIDATOR组成。STRUTS有其自己的控制器(CONTROLLER),同时整合了其他的一些技术去实现模型层(MODEL)和视图层(VIEW)。在模型层,STRUTS可以很容易的与数据访问技术相结合,包括EJB,JDBC和OBJECTRELATIONBRIDGE。在视图层,STRUTS能够与JSP,VELOCITYTEMPLATES,XSL等等这些表示层组件想结合。1从视图角度(VIEW)主要由JSP建立,STRUTS自身包含了一组可扩展的自定义标签库TAGLIB,可以简化创建用户界面的过程。目前包括BEANTAGS,HTMLTAGS,LOGICTAGS,NESTEDTAGS,TEMPLATETAGS这几个TAGLIB。有关它们的详细资料请参考STRUTS用户手册2从模型角度(MODEL)模型主要是表示一个系统的状态(有时候,改变系统状态的业务逻辑操作也也划分到模型中)。在STRUTS中,系统的状态主要有ACTIOMFORMBEAN体现,一般情况下,这些状态是非持久性的。如果需要将这些状态转化为持久性数据存储,STRUTS本身也提供了UTITLE包,可以方便的与数据库操作3从控制器角度(CONTROLLER)在STRUTSFRAMEWORK中,CONTROLLER主要是ACTIONSERVLET,但是对于业务逻辑的操作则主要由ACTION、ACTIONMAPPING、ACTIONFORWARD这几个组件协调完成(也许这几个组件,应该划分到模型中的业务逻辑一块)。其中,ACTION扮演了真正的业务逻辑的实现者,而ACTIONMAPPING和ACTIONFORWARD则指定了不同业务逻辑或流程的运行方向。出的事件,并重绘视图。231STRUCT工作原理一个请求在STRUTS2框架中的处理大概分为以下几个步骤1客户端初始化一个指向SERVLET容器(例如TOMCAT)的请求2这个请求经过一系列的过滤器(FILTER)(这些过滤器中有一个叫做ACTIONCONTEXTCLEANUP的可选过滤器,这个过滤器对于STRUTS2和其他框架的集成很有帮助,例如SITEMESHPLUGIN)3接着FILTERDISPATCHER被调用,FILTERDISPATCHER询问ACTIONMAPPER来决定这个请是否需要调用某个ACTION4如果ACTIONMAPPER决定需要调用某个ACTION,FILTERDISPATCHER把请求的处理交给ACTIONPROXY5ACTIONPROXY通过CONFIGURATIONMANAGER询问框架的配置文件,找到需要调用的ACTION类6ACTIONPROXY创建一个ACTIONINVOCATION的实例。7ACTIONINVOCATION实例使用命名模式来调用,在调用ACTION的过程前后,涉及到相关拦截器(INTERCEPTER)的调用。8一旦ACTION执行完毕,ACTIONINVOCATION负责根据STRUTSXML中的配置找到对应的返回结果。返回结果通常是(但不总是,也可能是另外的一个ACTION链)一个需要被表示的JSP或者FREEMARKER的模版。在表示的过程中可以使用STRUTS2框架中继承的标签。在这个过程中需要涉及到ACTIONMAPPER在上述过程中所有的对象(ACTION,RESULTS,INTERCEPTORS,等)都是通过OBJECTFACTORY来创建的。232STRUTS的特点STRUTS有如下的特点1优点STRUTS跟TOMCAT、TURBINE等诸多APACHE项目一样,是开源软件,这是它的一大优点。使开发者能更深入的了解其内部实现机制。除此之外,STRUTS的优点主要集中体现在两个方面TAGLIB和页面导航。TAGLIB是STRUTS的标记库,灵活动用,能大大提高开发效率。另外,就目前国内的JSP开发者而言,除了使用JSP自带的常用标记外,很少开发自己的标记,或许STRUTS是一个很好的起点。关于页面导航使系统的脉络更加清晰。通过一个配置文件,即可把握整个系统各部分之间的联系,这对于后期的维护有着莫大的好处。尤其是当另一批开发者接手这个项目时,这种优势体现得更加明显。2缺点TAGLIB是STRUTS的一大优势,但对于初学者而言,却需要一个持续学习的过程,甚至还会打乱你网页编写的习惯,但是当你习惯了它时,你会觉得它真的很棒;STRUTS将MVC的CONTROLLER一分为三,在获得结构更加清晰的同时,也增加了系统的复杂度;它对类和一些属性、参数的命名显得有些随意,给使用带来一些不便24HIBERNATE概述HIBERNATE是用于简化数据库操作的第三方开源工具它实现ORMOBJECTRELATIONALMAPPING,对象关系映射,在具体的操作业务对象时,就不需要和复杂的SQL语句打交道,只要像平时操作对象一样不使用HIBERNATE的话,那么就会出现很多重复的代码,HIBERNATE5个核心接口的类关系图241HIBERNATE的工作原理HIBERNATE技术本质上是一个提供数据库服务的中间件。它的架构如图1所示图1图1显示了HIBERNATE的工作原理,它是利用数据库以及其他一些配置文件如HIBERNATEPROPERTIES,XMLMAPPING等来为应用程序提供数据持久化服务的。HIBERNATE具有很大的灵活性,但同时它的体系结构比较复杂,提供了好几种不同的运行方式。在轻型体系中,应用程序提供JDBC连接,并且自行管理事务,这种方式使用了HIBERNATE的一个最小子集;在全面解决体系中,对于应用程序来说,所有底层的JDBC/JTAAPI都被抽象了,HIBERNATE会替你照管所有的细节,整个流程如下242HIBERNATE的特点一、HIBERNATE是JDBC的轻量级的对象封装,它是一个独立的对象持久层框架,和APPSERVER,和EJB没有什么必然的联系。HIBERNATE可以用在任何JDBC可以使用的场合,例如JAVA应用程序的数据库访问代码,DAO接口的实现类,甚至可以是BMP里面的访问数据库的代码。从这个意义上来说,HIBERNATE和EB不是一个范畴的东西,也不存在非此即彼的关系。二、HIBERNATE是一个和JDBC密切关联的框架,所以HIBERNATE的兼容性和JDBC驱动,和数据库都有一定的关系,但是和使用它的JAVA程序,和APPSERVER没有任何关系,也不存在兼容性问题。三、HIBERNATE不能用来直接和ENTITYBEAN做对比,只有放在整个J2EE项目的框架中才能比较。并且即使是放在软件整体框架中来看,HIBERNATE也是做为JDBC的替代者出现的,而不是ENTITYBEAN的替代者出现的。25SPRING概述SPRING是指一个用于构造JAVA应用程序的轻量级框架,不限定于只编写WEB应用。它的核心是个轻量级(LIGHTWEIGHT)的容器(CONTAINER),它是实现IOC(INVERSIONOFCONTROL)容器、非侵入性(NOINTRUSIVE)的框架,并提供AOP(ASPECTORIENTEDPROGRAMMING)概念的实现方式,提供对持久层(PERSISTENCE)、事务(TRANSACTION)的支持,提供MVCWEB框架的实现,并对一些常用的企业服务API(APPLICATIONINTERFACE)提供一致的模型封装,是一个全方位的应用程序框架(APPLICATIONFRAMEWORK),除此之外,对于现存的各种框架(STRUTS、JSF、HIBERNATE等),SPRING也提供了与它们相整合的方案。组成SPRING框架的每个模块或组件都可以单独存在,或者与其他一个或多个模块联合实现。每个模块的功能如下核心容器核心容器提供SPRING框架的基本功能。核心容器的主要组件是BEANFACTORY,它是工厂模式的实现。BEANFACTORY使用控制反转IOC模式将应用程序的配置和依赖性规范与实际的应用程序代码分开。SPRING上下文SPRING上下文是一个配置文件,向SPRING框架提供上下文信息。SPRING上下文包括企业服务,例如JNDI、EJB、电子邮件、国际化、校验和调度功能。SPRINGAOP通过配置管理特性,SPRINGAOP模块直接将面向方面的编程功能集成到了SPRING框架中。SPRINGDAOJDBCDAO抽象层提供了有意义的异常层次结构,可用该结构来管理异常处理和不同数据库供应商抛出的错误消息。异常层次结构简化了错误处理,并且极大地降低了需要编写的异常代码数量。SPRINGORMSPRING框架插入了若干个ORM框架,从而提供了ORM的对象关系工具,其中包括JDO、HIBERNATE和IBATISSQLMAP。SPRINGWEB模块WEB上下文模块建立在应用程序上下文模块之上,为基于WEB的应用程序提供了上下文。SPRINGMVC框架MVC框架是一个全功能的构建WEB应用程序的MVC实现。通过策略接口,MVC框架变成为高度可配置的,MVC容纳了大量视图技术,其中包括JSP、VELOCITY、TILES、ITEXT和POI。组成SPRING框架的每个模块或组件都可以单独存在,或者与其他一个或多个模块联合实现。每个模块的功能如下核心容器核心容器提供SPRING框架的基本功能。核心容器的主要组件是BEANFACTORY,它是工厂模式的实现。BEANFACTORY使用控制反转IOC模式将应用程序的配置和依赖性规范与实际的应用程序代码分开。SPRING上下文SPRING上下文是一个配置文件,向SPRING框架提供上下文信息。SPRING上下文包括企业服务。SPRINGAOP通过配置管理特性,SPRINGAOP模块直接将面向方面的编程功能集成到了SPRING框架中。SPRINGDAOJDBCDAO抽象层提供了有意义的异常层次结构,可用该结构来管理异常处理和不同数据库供应商抛出的错误消息。异常层次结构简化了错误处理,并且极大地降低了需要编写的异常代码数量例如打开和关闭连接。SPRINGDAO的面向JDBC的异常遵从通用的DAO异常层次结构。SPRINGORMSPRING框架插入了若干个ORM框架,从而提供了ORM的对象关系工具,其中包括JDO、HIBERNATE和IBATISSQLMAP。所有这些都遵从SPRING的通用事务和DAO异常层次结构。SPRINGWEB模块WEB上下文模块建立在应用程序上下文模块之上,为基于WEB的应用程序提供了上下文。SPRINGMVC框架MVC框架是一个全功能的构建WEB应用程序的MVC实现。通过策略接口,MVC框架变成为高度可配置的,MVC容纳了大量视图技术,其中包括JSP、VELOCITY、TILES、ITEXT和POI。251SPRING的工作原理SPRING工作原理INTERFACE21公司推出的SPRING开发框架(以下简称SPRING)经过开放源代码社区和众多项目的应用和实际检验,历经多个版本的发展,已经成长为使用开源技术开发J2EE应用的事实标准。SPRING运用“控制反转(以下缩写为IOC)”和“面向方面编程”(以下缩写为AOP)的理念,在正规的设计模式和一整套最佳实践的支持下,为普通JAVA对象提供了包括轻量级IOC容器、AOP支持、声明式事务、对象关系模型映射、J2EE集成工具、WEB开发框架集成工具和基本的MVC实现等7个主要方面的特性和服务。IOC的概念最早来自于2004年MARTINFOWLER提出的一种组件装配模式,其核心观点是将组件的配置与使用分开1。SPRING的IOC容器提供这样一种功能为那些组成应用程序的主体和其他需要由容器管理的对象(称为BEAN)提供实例化、定位、配置支持,并通过容器核心接口ORGSPRINGFRAMWORKBEANSFACTORYBEANFACTORY的多个实现的支持,描述并建立并管理这些对象之间的依赖关系。最常见的方式是通过XML配置元数据来对容器管理的BEAN进行定义,通过SETTER注入和构造器注入两种主要的依赖注入方式实现BEAN之间的依赖管理,从而实现高层次的松耦合。SPRING20版本为元数据的XML配置方式提供基于XMLSCHEMA的“自定义标签”功能,即通过第三方命名空间将自定义BEAN的配置引入IOC容器的元数据配置,在应用程序开发中更好的融合SPRING的IOC功能。核心接口SCRIPTFACTORY定义创建动态语言实现BEAN的GETSCRIPTEDOBJECT方法,以及构造工厂实例所需的脚本资源和JAVA接口(SPRING要求开发者编写的动态语言必须实现至少一个JAVA接口),其含义是任何一种可以被IOC容器支持的动态语言必须具有JAVA的类型特性并且以对象实例为单位被容器管理,才能获得容器提供的特性。目前SCRIPTFACTORY接口的实现只有3个,分别提供BSH,GROOVY和RUBY语言的支持。252SPRING的特点1控制反转IOCINVERSEOFCONTROL,依赖注入DIDEPENDENCEINJECTION。注释由容器控制程序之间的关系,而非传统实现中,有程序代码直接操控。控制权有应用代码中转到了外部容器,控制权的转移,是所谓反转。注入类型接口注入,设置注入,构造子注入。而SPRING则是IOC的一个容器。在SPRING中,所谓依赖注入,即在运行期由容器将依赖关系注入到组件之中。讲的通俗点,就是在运行期,由SPRING根据配置文件,将其他对象的引用通过组件的提供的SETTER方法进行设定。2SPRINGBEAN封装机制SPRING从核心而言,是一个DI容器,其设计哲学是提供一种无侵入式的高扩展性框架。即无需代码中涉及SPRING专有类,即可将其纳入SPRING容器进行管理。作为对比,EJB则是一种高度侵入性的框架规范,它制定了众多的接口和编码规范,要求实现者必须遵从。侵入性的后果就是,一旦系统基于侵入性框架设计开发,那么之后任何脱离这个框架的企图都将付出极大的代价。为了避免这种情况,实现无侵入性的目标。SPRING大量引入了JAVA的REFLECTION机制,通过动态调用的方式避免硬编码方式的约束,并在此基础上建立了其核心组件BEANFACTORY,以此作为其依赖注入机制的实现基础。ORGSPRINGFRAMEWORKBEANS包中包括了这些核心组件的实现类,核心中的核心为BEANWRAPPER和BEANFACTORY类。这两个类从技术角度而言并不复杂,但对于SPRING框架而言,却是关键所在。BEANWRAPPER通过BEANWRAPPER,我们可以无需在编码时就指定JAVABEAN的实现类和属性值,通过在配置文件加以设定,就可以在运行期动态创建对象并设定其属性(依赖关系)。上面的代码中,我们仅仅指定了需要设置的属性名“NAME”,运行期,BEANWRAPPER将根据JAVABEAN规范,动态调用对象的“SETNAME”方法进行属性设定。属性名可包含层次,如对于属性名1,SPRING不同于其他的FRAMEWORK,它要提供的是一种管理你的业务对象的方法。2,SPRING有分层的体系结构,意味着你能选择仅仅使用它的任何一个独立的部分,而其他的仍然使用你的相关实现。3,它的设计从一开始就是要帮助你编写易于测试的代码,SPRING是使用测试驱动开发(TDD)的工程的理想框架。4,SPRING不会给你的工程添加对其他的框架依赖;同时SPRING又可以称得上是个一揽子解决方案,提供了一个典型应用所需要的大部分基础架构。SPRING的好处1,SPRING能有效地组织你的中间层对象;()2,SPRING能消除在许多工程中常见的对SINGLETON的过多使用;3,通过一种在不同应用程序和项目间一致的方法来处理配置文件,消除各种自定义格式的属性文件的需要,仅仅需要看看类的JAVABEAN属性。INVERSIONOFCONTROL的使用帮助完成了这种简化;(使用的是TYPE2的IOC)4,能够很容易培养你面向接口而不是面向类的编程习惯。(这也算。)5,SPRING的设计会让使用它创建的应用尽可能少的依赖于它的APIS,在SPRING应用中的大多数业务对象没有依赖于SPRING。6,使用SPRING构建的应用程序易于单元测试;7,SPRING使EJB成为一个实现选择,而不是必需的选择。你可以用POJOS或LOCALEJBS来实现业务接口,却不会影响到调用代码。8,SPRING提供一些WEB应用上的EJB的替代方案,比如用AOP提供声明性事务管理;9,SPRING为数据存取提供了一个一致的框架,不论是使用JDBC还是O/RMAPPING的产品(HIBERNATE,JDO)。3MYSQL数据库编程31MYSQL简介MYSQL是一个小型关系型数据库管理系统,开发者为瑞典MYSQLAB公司。目前MYSQL被广泛地应用在INTERNET上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MYSQL作为网站数据库。与其他的大型数据库例如ORACLE、DB2、SQLSERVER等相比,MYSQL自有它的不足之处,如规模小、功能有限(MYSQL不支持视图(已经被列入51版的开发计划)、事件等)等,但是这丝毫也没有减少它受欢迎的程度。对于一般的个人使用者和中小型企业来说,MYSQL提供的功能已经绰绰有余,而且由于MYSQL是开放源码软件,因此可以大大降低总体拥有成本。目前INTERNET上流行的网站构架方式是LAMP即LINUXAPACHEMYSQLPHP,即使用LINUX作为操作系统,APACHE作为WEB服务器,MYSQL作为数据库,PHP作为服务器端脚本解释器。由于这四个软件都是遵循GPL的开放源码软件,因此使用这种方式不用花一分钱就可以建立起一个稳定、免费的网站系统1使用C和C编写,并使用了多种编译器进行测试,保证源代码的可移植性2支持AIX、FREEBSD、HPUX、LINUX、MACOS、NOVELLNETWARE、OPENBSD、OS/2WRAP、SOLARIS、WINDOWS等多种操作系统3为多种编程语言提供了API。这些编程语言包括C、C、EIFFEL、JAVA、PERL、PHP、PYTHON、RUBY和TCL等。4支持多线程,充分利用CPU资源5优化的SQL查询算法,有效地提高查询速度6既能够作为一个单独的应用程序应用在客户端服务器网络环境中,也能够作为一个库而嵌入到其他的软件中提供多语言支持,常见的编码如中文的GB2312、BIG5,日文的SHIFT_JIS等都可以用作数据表名和数据列名可以使用命令行工具管理MYSQL数据库(命令MYSQL和MYSQLADMIN,也可以从MYSQL的网站下载图形管理工具MYSQLADMINISTRATOR和MYSQLQUERYBROWSER。PHPMYADMIN是由PHP写成的MYSQL资料库系统管理程式,让管理者可用WEB介面管理MYSQL资料库。PHPMYBACKUPPRO也是由PHP写成的,可以透过WEB介面创建和管理数据库。它可以创建伪CRONJOBS,可以用来自动在某个时间或周期备份MYSQL数据库。提供TCP/IP、ODBC和JDBC等多种数据库连接途径,提供用于管理、检查、优化数据库操作的管理工具,可以处理拥有上千万条记录的大型数据库32MYSQL数据库常用命令MYSQL管理员应该知道如何设置MYSQL用户账号,指出哪个用户可以连接服务器,从哪里连接,连接后能做什么。MYSQL32211开始引入两条语句使得这项工作更容易做GRANT语句创建MYSQL用户并指定其权限,而REVOKE语句删除权限。两条语句扮演了MYSQL数据库的前端角色,并提供与直接操作这些表的内容不同的另一种方法。GRANT和REVOKE语句影响4个授权表内容。USER能连接服务器的用户以及他们拥有的任何全局权限DB数据库级权限TABLES_PRIV表级权限COLUMNS_PRIV列级权限1创建用户并授权GRANT语句的语法看上去像这样GRANTPRIVILEGESCOLUMNSONWHATTOUSERIDENTIFIEDBY“PASSWORD“WITHGRANTOPTION要使用该语句,你需要填写下列部分PRIVILEGES授予用户的权限,下表列出可用于GRANT语句的权限指定符权限指定符权限允许的操作ALTER修改表和索引CREATE创建数据库和表DELETE删除表中已有的记录DROP抛弃删除数据库和表INDEX创建或抛弃索引INSERT向表中插入新行REFERENCE未用SELECT检索表中的记录UPDATE修改现存表记录FILE读或写服务器上的文件PROCESS查看服务器中执行的线程信息或杀死线程RELOAD重载授权表或清空日志、主机缓存或表缓存SHUTDOWN关闭服务器4TARENA讲师考评系统需求分析41系统设计思想TARENA讲师考评系统是利用网络技术,实现学生与教师之间进行网络交流的重要平台,是高等教学机构和企业培训机构的一个重要组成部分。整个系统采用B/S结构,服务器端采用了JSP和STRUTS以及SPRING技术完成动态页面的生成,运用HIBERNATE访问数据库。系统实现原理如图41示。学生TEACHER项目经理ADMINMENAGER客户端服务器数据库图41系统实现原理42系统界面要求系统的初始界面假定用户是匿名登录,用户可以通过初始界面提供的统一的用户登录接口,登录进入各自的操作界面,因此系统主页面应该能自动进行身份判别,按照访问者的身份自动进入其相应的操作界面,流程如图42所示。YNYNYNADMINMANAGERTEACHER/项目经理开始ADMIN操作界面MANAGER操作界面TEACHER/项目经理操作界面结束图42操作界面流程图43TARENA讲师考评系统要求本系统应具有通常考评系统应该具有的所有功能,包括各种角色的登录,登录后进行相应的界面操作,其中ADMIN的权限最大,可添加删除其他的角色,并对他们进行调查。其次是MANAGER,能对其他TEACHER,项目经理进行调查。而TEACHER和项目经理只能调查学生对自己的评分结果,学生只能点评相应的老师和项目经理。要采取适当的技术优化这类数据操作,以提高数据存取效率。44TARENA讲师考评系统角色及其功能分析1TARENA讲师考评系统具有的角色1ADIMIN2MANAGER3班主任4TEACHER5项目经理6学生2TARENA讲师系统角色的功能分析1、ADMIN具有的功能调查管理,老师管理,项目经理管理,班主任管理,管理员管理,课程管理,班级管理,修改密码,退出系统。2、MANAGER具有的功能审核调查,搜索调查,统计报表,修改密码,退出系统。3、班主任具有的功能开启调查,搜索调查,修改密码,退出系统。4、TEACHER/项目经理具有的功能搜索调查,修改密码,退出系统。5、学生具有的功能对自己的老师,项目经理进行点评。3角色功能表调查管理开始调查ADMIN添加班级管理员管理班级管理调查列表搜索调查添加管理员管理员列表班级列表添加班级类型班级类型列表老师管理添加老师老师列表ADMIN项目经理管理班主任管理课程管理添加项目经理项目经理列表添加班主任班主任列表添加课程课程列表修改密码退出系统审核调查搜索调查讲师MANAGER统计报表修改密码退出系统项目经理月报表季报表年报表班主任开启调查搜索调查修改密码退出系统实体类老师搜索调查修改密码退出系统项目经理搜索调查修改密码退出系统学生点评老师项目经理类名BASEENTITYIMPLEMENTSSERIALIZABLE属性名属性类型注释IDLONGID标志类名CLASSESEXTENDSBASEENTITY属性名属性类型注释NAMESTRING班级名称TYPESSTRING班级类型CLASSIPSTRING班级的IP地址段STATUSINT状态是否毕业CLASSESTYPECLASSESTYPE班级所属类型类名CLASSESTYPEEXTENDSB

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论