《本科毕业设计开题报告(模板).doc》由会员分享,可在线阅读,更多相关《本科毕业设计开题报告(模板).doc(19页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、本科毕业设计(论文)开题报告学生姓名 学 号 指导教师 学院(系) 信息技术学院 专 业 计算机科学与技术 交稿日期 教务处制一、开题报告毕业设计(论文)题目计算机课程考试报名系统的设计与实现课题背景和意义:随着计算机及网络技术的飞速发展,Internet应用在全球范围内日益普及,当今社会正快速向信息化社会前进,信息自动化的作用也越来越大,从而使我们从繁杂的事务中解放出来,提高我们的工作效率。在众多网络服务中,Web已然成为时代的主流,而Java Web开发技术则因为可以进行复杂的数据库操作、很强的交互性以及方便的用户控制和管理备受开发人员的青睐。其中Struts作为基于MVC模型的Web框架
2、,自推出以来不断受到开发者的追捧,得到了用户广泛的应用。作为最成功的Web框架,Struts拥有众多的优点:使用MVC模型、功能齐全的标签库、开放源代码等。Java Web技术非常成熟,能为复杂的应用提供强大的业务计算能力,但是其界面展现能力却略显晦涩。恰巧同样基于MVC模式的Flex技术的优势在于构建绚丽的用户界面,能为用户提供很好的“富客户端”体验,但业务处理能力却并不是它的强项。所以Struts与Flex的结合必将引领Web开发的新的潮流。目前在我们学校,存在各级各类的考试和活动,而学校现有的报名系统只能完成一些重要的国家级考试的报名。大部分的信息公布和报名工作主要还是依赖于人工完成,不
3、仅缺乏条理,而且工作效率极低。人工管理还存在许多的弊端,由于不可避免的人为因素,容易造成数据的遗漏和误报。计算机信息化管理有着存储量大、速度快等许多优点,提供给我们的处理信息及时快捷,因此我们可以利用计算机网络,结合Struts技术和Flex技术实现动态的管理和完美的画面。随着计算机网络技术的进一步的发展和普及,利用Struts和Flex技术开发的各种网络报名系统必将大行其道。研究的主要内容:1、 研究目标:(1) 实现校园考试和活动信息公布和报名的科学规范化。(2) 实现校园考试和活动信息公布和报名的自动简便化。(3) 实现校园考试和活动信息公布和报名的网络便化。(4) 实现Struts技术
4、和Flex技术的完美结合。2、研究内容用Struts技术和Flex技术实现基于B/S模式的网络报名系统,主要包括3类用户:学生、教师和管理员。不同的用户有不同的操作界面和它们各自的功能:(1)学生:注册、登录、浏览、报名、发表意见和建议。(2)教师:注册、登录、浏览、报名、发表意见和建议。(3)管理员:查看所有项目的报名情况、信息的发布和导出、系统的维护(增、删、改)、用户开设等等。研究方法(或技术路线):使用的开发技术有:Struts:完成业务逻辑处理和计算;Flex:完成页面制作;Tomcat6.0:系统的发布和运行环境;MySql:完成数据信息的存储。开发流程:1、 本系统在Eclips
5、e环境中使用Flex完成页面的制作。2、 在完成页面制作,同样在Eclipse环境用Struts框架完成页面间的跳转和业务逻辑。3、将成果物发布在tomcat服务器上,验证各页面间是否能够正确跳转。4、完成页面与MySql数据库间的连接,并导入初始数据。5、重新在tomcat服务器上发布系统验证各环节的衔接是否正确,数据处理是否有误。6、完成上述过程,并对出现的问题进行完善后,对整个系统进行各项测试。7、完成测试,通过后,正式在校园网上发布系统,试运行。预期结果:1、 一个完整的,能够实现上述功能的,可以运行的系统。2、 一份毕业设计报告。3、 最终的系统画面:进度计划:WBSNAMESTAR
6、TFINISHWORK1前期调研Sep 1Sep 1410天2设计Sep 15Dec 558天2.1开发环境的选择和构筑Sep 15Sep 2911天2.2功能模块设计Sep 30Oct 2518天2.3画面的设计Oct 26Nov 2220天2.4数据库表单的设计Nov 23Dec 59天3开发Dec 6Feb 645天3.1开发环境和技术的学习Dec 6Dec 2615天3.2画面制作Dec 27Jan 1615天3.3画面与数据库的链接Jan 17Feb 615天4测试Feb 7Mar 1930天5毕业论文Mar 20Apr 915天指导教师意见:指导教师签名: 年 月 日系部意见 审查
7、结果: 同 意 不 同 意 学院(系)主任签名: 年 月 日二、阅读文献目录序号文献名文献出处文献发表时间1 基于Dojo组件的报名系统的应用中国教育信息化2008年3月2 论三种设计模式在报名系统中的应用计算机与信息技术2007年4月3基于WEB模式的高校设计大赛报名系统设计中国新技术新产品2009年10月4利用ASP实现网络通用报名系统 中国高新技术企业2008年8月5基于Web的培训考试报名系统的设计福建电脑2008年11月6高考报名系统统计功能的探讨与实现 现代计算机2007年2月7基于B/S模式的等级考试报名系统的设计与实现电脑知识与技术2009年 4月8基于ASP的远程高校考试报名
8、系统的实现 中国科技信息2006年8月9基于B/S的网络考试报名系统的设计与实现科技广场2007年1月10基于WEB的CET报名系统的设计与实现 科技信息(学术研究)2007年5月11基于WEB的选修课报名系统设计 电脑知识与技术2010年6月12高校新生报名管理系统设计信息与电脑(理论版)2011年5月13基于ASP的艺术考试网上报名系统的开发电脑知识与技术2006年8月14面向Web系统的Struts框架研究与应用 电子技术应用2007年8月15基于B/S模式的教育学、心理学考试在线报名系统的设计与实现 电脑知识与技术2011年1月16 基于ASP的网上报名系统研究与设计 信息技术与信息化
9、2006年8月17基于网络安全的网上报名系统的实现 电脑知识与技术2008年12月18计算机等级考试网上报名系统接口的设计与实现 科技信息2008年9月19全国计算机等级考试报名系统关键环节设计计算机应用与软件 2009年3月20全国计算机等级考试辅助报名系统设计计算机与现代化2010年6月21基于Web的全国计算机等级考试报名系统设计电脑知识与技术2009年35期22Strutshttp:/struts.apache.org/三、文献综述注意:学生阅读文献后,必须写出3000字左右的综述或读书报告,作为开题内容之一。(可增页)前言随着计算机网络技术的迅猛发展,教育信息化的趋势逐步深入,学校教
10、学和管理的信息化发展有了长足的进步。然而在大多数学校,缺乏多功能网上报名系统既能支持考试报名,同时又支持各种活动的报名。大部分的信息公布和报名工作主要还是依赖于人工完成,不仅缺乏条理,而且工作效率极低。鉴于传统报名方式存在的问题与不足,给学校的教学管理造成了繁重的劳动。为了切实减轻教务管理的工作负担,提高工作效率,把学校建设成一流的信息管理,教育教学平台,我们迫切的需要开发一种功能强大,处理信息效率高的Web网上报名系统。一、目前现状:1、功能方面:从网上查阅到的信息以及很多相关的文献资料表明,自2005年来,基于网络的各类报名系统的开发与设计成为了人们的研究重点。这些网上报名系统功能各不相同
11、,但是主要还是以考试报名系统为主,如:基于WEB的CET报名系统、基于B/S模式的等级考试报名系统、基于Web的全国计算机等级考试报名系统、基于ASP的艺术考试网上报名系统等等。这些系统的开发,都是为了应对我国日益壮大的考试规模与传统报名方式工作效率低下这对矛盾的。但是,相对于这些日趋广泛的考试报名系统,与校园内外相关的活动的报名系统却并不多见,将考试与活动报名功能整合在一起的系统更是极为罕见。大部分院校都有属于自己的考试报名系统,但是几乎没有一所院校有属于自己校园活动报名系统。2、技术方面:通过众多文献我们发现,现有的一些考试报名系统主要使用J2EE技术和ASP技术,采用层次化的开发和模块化
12、的开发这两种开发模式。一些系统采用基于J2EE和MVC设计模式的多层B/S架构,把每种不同的服务部署在一个独立的层。如:客户层、表示层、业务层、数据层。客户层:即Web游览器;表示层:通常采用Struts技术,它继承了MVC的各项特征,将业务逻辑和页面显示分离开来。它的好处是将业务逻辑和页面显示分离开来,将大量的逻辑放在配置文件中,而不是放在程序中。通过配置文件将Struts标签库,Actionform对象,ActionServlet控制器组件,Action对象联系在一起。其主要工作流程为:当用户向服务器提交http请求时,该请求就被转发到ActionServlet控制器,控制器利用Actio
13、nMapping对象把请求映射到Action处理器对象,并根据请求的参数实例化相应的ActionForm;通过配置信息决定是否需要表单验证;验证成功则由ActionServlet根据配置信息决定调用哪个Actionexecute方法;Action的execute方法返回一个ActionForward对象,ActionServlet再把HTTP请求转发给ActionForward对象指向的JSP组件。JSP组件生成动态网页,返回给客户。整个过程中Struts完成客户端表单进入的验证,管理请求和响应,提供控制器来完成页面流转和向业务逻辑层委托,返回到客户端页面显示。业务层:业务层为数据库端表示层提
14、供松散耦合,处理真实应用,完成事务管理的选择,协调各种业务逻辑对象之间的依赖关系,并为持久层和业务逻辑层之间提供松散耦合。数据层:通常采用Hibernate作为中介,它是采用ORM映射机制的持久层开发工具,是Java应用和关系数据库之间的桥梁,负责Java对象和关系数据库之间的映射。内部封装了JDBC访问数据库的操作,向上层应用提供了面向对象的数据库访问API。剩下的一些考试报名系统通常使用ASP技术,并且使用模块化的设计。如按用户种类分可以分为:管理员模块和学生模块;按功能分可以分为:登录模块、游览模块、搜索查询模块、报名模块、退出模块等等。不管使用哪一种的开发方式,都会存在它们各自的优势和
15、缺点,但是我们发现:不管是用J2EE还是ASP技术,开发出来的系统的页面效果都太过单调。就如同一件稀世珍宝披着一件毫不起眼的外衣,总觉得两者非常的格格不入。二、发展方向:1、功能方面:随着我国教育事业不断的发展,我们开始追求科学的教育教学体制,我们需要和谐的发展我们的教育,而不是为了考试而考试的教育,除了课堂,我们更需要从实践中获取我们所要的知识。这样,学校的各项活动就会变多,那势必就会像考试报名那样,我们同样会需要一个活动报名系统来解决我们的问题。我们不会花那么多的时间和精力去开发两套相似却又不同的系统,那么将两套报名系统整合成一套多功能的报名系统就成为一种需求。随着各类报名的不断增多,我们
16、都可以把这些整合到一套多功能报名系统中,组成一个功能更强大的系统。2、技术方面:Java Web,是用Java技术来解决相关web互联网领域的技术总和。web包括:web服务器和web客户端两部分。Java在客户端的应用有java applet不过现在使用的很少,Java在服务器端的应用非常的丰富,比如Servlet,JSP和第三方框架等等。Java技术对Web领域的发展注入了强大的动力。随着Java Web技术的不断发展和日趋成熟,越来越多的开发人员更倾向于使用Java Web来开发基于Web的应用和系统,Java web必将成为web开发的中流砥柱。同时,这是个对美有着很大追求的时代,单调
17、的页面无法给人带来美的享受,如果没有华丽多彩的页面,再强大的系统也只能被历史的长河所吞没。而Flex的出现却解决了这样一个问题。Flex 是一个高效、免费的开源框架,可用于构建具有表现力的 Web 应用程序,这些应用程序利用 Adobe Flash Player和 Adobe AIR, 运行时跨浏览器、桌面和操作系统实现一致的部署。作为新一代的富客户端互联网技术的佼佼者,Flex这种技术已经被越来越多的公司所采用,被越来越多的用户和程序员所接受。Java Web强大开发功能加上Flex无与伦比的表现力和富英特网应用,这两种技术的结合必将成为一种趋势,而用Java Web和Flex开发的Web应
18、用或系统也必将大行其道。三、给我的启发:针对本次毕业设计翻阅了很多的文献,这些文献给我最大的启发是在开发思路和技术选择方面。很多相关的文献中其技术实现都是使用ASP技术和C#技术,这一点在前面也提过了,只有一片提到了Struts,而就是这篇文献使我对Struts产生了浓厚的兴趣,通过各种途径学习这种技术,慢慢的对它有了深入的了解。体会到了它与ASP技术和C#技术间的区别,以及Struts框架的优势,最终也使我确定使用Struts技术进行毕业设计的开发。对于页面部分,几乎所有的文献都是通篇一律的使用JSP技术。不错使用JSP技术,借助于Dreamweaver工具,也可以编写出比较优美的画面,但是
19、其实现起来太过困难,其自身的携带的空间和组件太少。这就让我尝试着去寻找一种能够简单的制作出比较优美画面的技术。借助于互联网,很快的就发现了Flex,事实也证明,它的确不负所望。在开发思路方面,主要让我了解了一些开发的流程,开发所采用的模式,当然也帮助我在一定程度上完善了所要开发的系统的功能。开发流程简单的讲就是:一个项目从开始到结束,其中经历的各个阶段,这是以前没有接触过的。至于开发模式,上面也提过了,有基于B/S和C/S的开发,也有分层的开发和模块化的开发等,其实对于这些开发模式,没有绝对的好坏优劣之分,只能说某些模式更适合某些项目。简而言之,从这些文献中受益匪浅。参考文献:1、王念晖,徐林
20、 论三种设计模式在报名系统中的应用 计算机与信息技术 2007年2、李小强,张朝晖,李振坤 高考报名系统统计功能的探讨与实现 现代计算机 2007年3、王成 基于B/S的网络考试报名系统的设计与实现 科技广场 2007年14、林穗,李振坤 面向Web系统的Struts框架研究与应用 电子技术应用 2007年5、宋少伟,刘方爱 基于ASP的网上报名系统研究与设计 信息技术与信息化 2006年6、管小卫,丁琳 基于Web的全国计算机等级考试报名系统设计 电脑知识与技术 2009年7、陈晓林,吴定雪,周妃,余志超,肖小红 全国计算机等级考试报名系统关键环节设计 计算机应用与软件 2009年3四、文献
21、翻译注意:每个学生必须提交15000个以上印刷符号、与课题研究密切相关的外文文献的中文翻译文章。(可增页)Struts(文献来源:http:/struts.apache.org/ )struts框架是一个基于像JavaServlet、JavaBeans、ResourceBundles和XML,以及各种各样的Apache Commons包,如BeanUtils包、Chain of Responsibility包这样的标准技术的灵活性控制层。根据已发布的标准和已验证的设计模式,这个框架会帮助你,为你的应用程序创建一个可扩展的开发环境Struts概要Struts框架提供属于它自己的页面控制器组件,并
22、且通过整合其它技术来提供模型和视图。就模型而言,这个框架可以和JDBC、EJB以及大多数的第三方软件包如HIbernate、iBATIS或者Object Relational Bridge这样的标准存取技术相交互。就视图而言,这个框架可以和JavaServer Pages很好的工作在一起,包括JSTL、JSF、以及Velocity Templates,XSLT和其它的发布体制。Struts框架的控制器在应用程序的模型和网页视图之间扮演着桥梁的作用。当一个请求被接收到后,控制器就调用一个Action类,这个Action类就负责调用对应的模型,去检测或更新应用程序的状态。这个框架还提供一个Acti
23、onForm类,用来帮助模型和视图间的数据传输和交换。通常,模型由一组JavaBeans来描述。一般来说,开发商会使用Commons BeanUtils在ActionForms和模型对象间传输和交换数据。更形象的来说,模型就相当于是一台“举重机”,而Action类就扮演着“交通警察”或适配器,接合器这样的角色。Struts Config 概要一个网络应用程序通过使用像sevlets和taglibs这样的struts配置标签来完成资源的初始化。这些配置标签被格式化为一个XML的文件,并且命名为“web.xml”。同样的,这个框架使用配置文件来初始化自己的资源。这些资源包括用来收集用户输入信息的A
24、ctionForm表单,将输入与服务器端的Action类直接对应起来的ActionMapping映射配置文件和选择输出页面的ActionForward转发文件。下面是一个简单的登录工作流的配置 还有几个其它的标签资源你可以指定在struts框架的配置文件中。比如使用Struts表单验证机制,你可以在一个XML标签中指定对ActionForm的表单进行验证。一个标准的扩展,就如同将一块块砖垒起来一样,帮助你从一个个细小的碎片开始,完成整个页面的建设。Struts是可扩展的。每一个由框架部署好的类都可以被你自己的默认的类所取代。你的默认类的属性可以通过设计者的属性设置功能来进行设置。这就是为什么会
25、有那么多的贡献者的扩展功能。我们提供最基本的基础框架,但是你可以通过你自己的方式来写你的应用程序。是不是对每一个项目而言,struts都是最好的选择呢?不是的。如果你只需要写一个带有少量页面的,非常简单的应用程序,那么你可以考虑使用“Model1”的解决方案,也就是只使用服务页面。但是,如果你在写一个带有大量页面的,需要经常维护的比较复杂的应用程序时,那么struts框架就可以很好的帮助你。Apache Struts web框架是一个用来创建Java web应用程序的免费、开源的解决方案。web应用程序和传统的网站区别在于:web应用程序能够创建一个动态的响应过程,而很多的网站却只能实现静态的
26、页面。一个web应用程序可以与数据库和业务逻辑引擎相交互,从而完成对用户特定请求的响应。基于JavaServer Pages的web应用程序有时会将数据库代码,页面设计代码和控制流代码融合在一起。在实践中我们发现,除非这些焦点是分开的,否则大型的应用程序会变得很难维护。在一个软件的应用程序中,将这些焦点分开的一种途径是采用模型-视图-控制器也就是MVC的模式。用模型来描述业务逻辑代码或数据库代码,视图描述页面设计代码而控制器则描述运行流程代码。struts框架被设计成通过利用MVC的开发模式来帮助用户创建一个web应用程序。该框架提供了三个关键的组件:一个由应用程序开发商提供的,能够直接映射到
27、标准URL的请求处理器。一个能够将控制信息传递到另一个能够完成响应的资源上的响应处理器。一个能够帮助开发人员创建应用程序与服务器页面间交互的标签库。简介1.1走进历史(一段简短的Struts历史)当Java servlets刚被发明的时候,很多的程序员就很快的意识到它们是一个好东西。它们的速度更快,功能更强大,拥有标准的CGI接口,更便捷以及无限的可扩展性。但是编写HTML语句发送到游览器,然后无休止的执行println()语句是一件很令人无聊并且有问题的事情。而解决这个问题的答案就是JavaServer Pages,它使得Servlet的编写由内部转向外部。现在开发人员可以很容易的将HTML
28、和Java代码相融合,并且能充分利用servlet的一切优势。Java web应用程序很快变成了JSP-centric。无论内外,这对它本身来说都不是一件坏事,但它并没有解决流程控制问题和其它的一些web应用程序特有的问题。许多聪明的开发人员意识到可以将JavaServer Pages和servlet部署在一起去开发web应用程序。servlets可以帮助控制流程,JSP可以着重负责繁琐的业务逻辑的HTML代码的编写。在这样预期的情况下将JSP技术和Servlet技术结合在一起使用就变成了我们所知道的Model2。(Model1只使用JSP)当然,这个世界上本来就没有什么新鲜事。很多相关的技术
29、都迅速指出,JSP的Model2遵循着从Smalltalk MVC框架中抽象出来的,经典的模型-视图-控制器的设计模式。现在Java web的开发人员都倾向于将Model2的条款和MVC模式交互使用。在这篇指南中,我们使用MVC来描述框架的构筑,而Model2/MVC设计模式可能是对它最好的命名。在2000年5月,由Craig R.McClanahan提交了一个标准的MVC框架给Java community之后Apache Struts项目正式启动。2001年7月,struts1.0正式发布,接下来Java Model2的开发,从来都没有如此的一致过。1.2模型-视图-控控制器(MVC)的设计
30、模式术语MVC来源于Small Talk Model-View-Controller框架。在MVC观念下,一个应用程序被认为有三个不同的独特的部分。问题域部分由模型描述,向用户输出信息部分由视图描述,用户的输入部分由控制器描述。1.2.1模型:系统状态和业务逻辑JavaBeansMVC-based系统的模型部分常常可以被分成两个主要的子系统-一个是显示系统的内部状态,另一个是一些可以改变系统状态的操作。从语法的角度讲,我们可能会将状态信息和名词联系在一起,将操作与动词联系在一起。许多应用程序用一组或多组JavaBeans来描述系统内部的状态。bean的属性详细的描述了系统的状态。根据你的应用程
31、序的复杂程度,这些bean会自我控制(并知道如何保持他们的状态)或者它们会通过另一个组件了解到如何从新获取、恢复或检测系统的状态。这个组件可以是一个数据库,一个搜索引擎,一个实体的JavaBean,一个LDAP服务器或者其它的一些别的东西。大规模的应用会经常描述一些合理可用的业务逻辑操作,把它们作为委托一个bean或多个bean去保持和维护状态信息的方法。例如,你可能为每一个当前用户的属性创建一个存储在session范围的购物车bean,而所存储的那些属性是可以描述这个用户已经决定购买的当前一组东西的信息的。这个bean也可能有一个CheckOut()的方法,可以批准或认可用户的信用卡结算并能
32、够将需求发送到仓库并按用户的需求包装发货。其它的一些系统可以分别的描述可用的业务操作,也许就和Session Enterprise JavaBeans一样。另一方面,在一个较小规模的应用里,一些可用的操作可能被嵌入在控制层框架的Action类内。当逻辑非常简单,或者在一些不需要重复使用同样的业务逻辑的环境里,这将是非常有用的。该框架的构筑足够的灵活,可以支持任何方法来获取大部分模式,但我们强烈建议你将Action类所扮演的业务逻辑从任务中分离开。1.2.2视图:JSP页面和显示组件struts-based应用的视图部分经常用JSP技术来创建。JSP页面可以包含被称作“样板文本”的静态HTML或
33、XML文本,并且能够插入基于特殊行为标签的动态内容。JSP环境包含一组标准的行为标签,如 ,它的功能描述在JSP的规格说明书里。除了内置行为以外,有一个标准设备可以用来定义你自己的标签,定义好的标签存放在“自定义标签库”里。该框架包含一组能够帮助创建用户接口的自定义标签库,便于使其完全的国际化并且能够和ActionForm bean进行良好的交互。ActionForm捕获并且验证任何一个应用程序所要求的输入。1.2.3控制器:ActionServlet和ActionMappingStruts提供应用程序的控制器部分。该控制器着重从客户端接收请求,然后决定选择执行哪个业务逻辑的函数,接着将自己的
34、责任委托出去,进入下一阶段把用户接口组件组成适合的试图界面。该框架的控制器的主要组成部分是一个ActionServlet类中servlet。这个servlet是通过定义一组ActionMapping映射配置文件来配置的。ActionMapping映射配置文件定义了一个将会发生的请求的URL具体路径,通常都是指一个Action类的全名。所有的Action类都被封装在org.apache.struts.action.Action中。Action类将调用封装到业务逻辑类中,返回结果,最后分派控制信息到一些适当的视图组件来创建一个响应。当用视图来表现框架时,事实上表现的是它的外部规格。该框架也支持使用
35、ActionMapping去获取一些操作控制器所必须的额外的属性。这就允许你为你的应用程序指定存储某些特殊的额外信息,同时有保留原来框架的特点。除此之外,该框架还允许你定义一些帮助转发控制信息的业务逻辑名。这样,在不知道对应的相匹配的JSP页面的位置时,action方法也可以访问“主菜单”页面。这些特点可以极大的帮助你将控制逻辑与视图逻辑相分离开。1.3框架控制流该框架提供的几个组件组成了MVC模式的应用程序的控制层。这些组件包括:控制器组件(servlet),开发人员自定义请求处理器和一些支持对象。Struts的taglib组件提供了直接支持MVC应用程序的的视图层。其中的一些标签可以访问控
36、制层的对象。其它的普通标签可以帮助你很方便的去写一个应用程序。其它的taglib,包括JSTL,也可以与框架一起使用。像Velocity Templates和XSLT这样的编码技术,同样也可以和框架一起使用。模型层通常是MVC应用中一个特别的项目。框架被设计成能够使模型很容易的访问你应用程序的业务底层,但那部分的程序编写则交给其它产品完成,可以是JDBC,Enterprise Java Bean,Object Relational Bridge或iBATIS,在此仅列举这些。当初始化的时候,控制器解析Struts-config.xml配置文件并用它配置其它的控制层对象。同时这些对象也形成了对S
37、truts的配置。这些配置也为应用程序定义了集成的ActionMapping的org.apache.struts.action.ActionMappings包。由于ActionMapping映射文件在该框架中负责将HTTP请求按路径转发到其它的组件,所以控制器组件先查阅它。请求可能会被转发到JavaServer Page或者转发到由应用程序开发人员提供的在org.apache.struts.action.Action包中的Action子类。通常,请求会先被转发到一个Action类,然后再转发到JSP。映射帮助控制器将HTTP请求变成应用中具体的action。一个独立的ActionMapping
38、org.apache.struts.action.ActionMapping通常含有大量的属性,包括:请求路径或者具体的URL,能够对请求做出响应的对象类型(Action类的子类)和其它一些必须的属性。Action对象可以处理请求并在客户端做出响应或者能够指明控制信息应该被转发到得地方。举例来说,如果登陆成功,登录action就可能希望请求跳转到主菜单页面。Action对象可以访问应用程序的控制器组件,所以也可以访问那些成员的方法。当转发一个控制信息时,一个Action对象可以间接的跳转到一个或多个共享的对象上,包括JavaBean,并把他们放在一个由Java Servlet共享的标准环境中。
39、举例来说,一个Action对象可以创建一个购物车bean并为它添加一个项目,然后将这个bean放在session环境中,接着将控制信息转发到另一个映射。那个映射会使用JSP来显示用户购物车中的内容。由于每个用户都有自己的session,所以他们都会有自己的购物车。一个应用程序中,大部分的业务逻辑可以用JavaBean来描述。一个Action可以在不知道一个JavaBean是如何工作的情况下调用它的属性。这样其实就是对业务逻辑的封装,如此一来Action就可以专注于错误信息的处理和控制信息的转发。JavaBean也可以用来管理输入表单。在设计web应用程序时的一个关键的问题是:如何保持并验证用户
40、在各请求间的输入。你可以定义自己的一组输入bean,把它封装在ActionForm org.apache.struts.action.ActionForm中。ActionForm类会使你应用程序输入的信息的存储和验证变得很容易。ActionForm bean会自动保存在一个标准的,共享的集成环境中,那样它就可以被其它对象使用,比如一个Action对象或另一个JSP。表单bean可以被JSP用来收集用户输入的数据,可以被Action对象用来验证用户输入的数据,然后再由JSP重构表单字段。在验证出错时,框架有一个共享的机制提出并显示错误信息。配置信息的另一个组成部分是ActionFormBeans
41、 org.apache.struts.action.ActionFormBeans。这是一个描述符对象的集成,在运行时用来创建ActionForm对象的实例。当映射需要一个ActionForm时,servlet通过名字来查找对应的form-bean,并用它创建指定类型的ActionForm实例。下面是一些当一个请求调用映射,使用ActionForm时所发生的一系列事件。控制器servlet重新恢复或创建ActionForm bean实例。控制器servlet将bean传送到Action对象。如果请求是提交一个输入页面,那么Action对象可以检查其中的数据。如果有必要,数据会被送回输入表单,连
42、同一个信息列表显示在页面上。否则数据会被传送到业务层。如果请求是创建一个输入页面,那么Action对象会用任何输入页面可能需要的信息来重构bean。Struts Taglib组件提供了能够自动重构JavaBean字段的自定义标签。几乎所有的JSP真正要知道的是:使用的字段名和在哪里提交表单。其它的标签通过Action或ActionForm可以自动有序的输出信息,并且只需要简单的整合就可以将这些标签嵌入在到页面的标记中。这些信息被设计成用来定位,以及为用户的界面提供最有效的信息。该框架和Struts Taglib是设计用来支持Java平台的国际化特征的建设的。所有的字段标签和信息都可以从信息资源库中重新获取。如果要为另一种