1Web开发技术的文献综述摘要:Web开发技术和Web开发框架整合实践研究是这个时代的一个热点,本文在参阅国内外Web开发技术和Web开发框架及主要几个框架相关文献的基础上,对Web开发框架研究作了较为全面的总结和梳理,并结合Web开发框架几个主要框架的优劣势进行整合,以期进一步推进Web应用的发展。关键词:Web开发;框架;Struts;Spring;Hibernate;TheLiteratureSummaryoftheWebDevelopmenttechniqueAbstract:Webdevelopmenttechniqueandwebdevelopmentframeworktointegratepracticalresearchisahotissueofthestudyinthisdayandage.Thispapermadeamorecomprehensivesummaryandreviewonwebdevelopmenttechniqueandwebdevelopmentframeworkonthebasisofforeignanddomesticresearchpapers,reflectedandcombingonthecurrentamorecomprehensivesummaryaboutseveraladvantagesanddisadvantagesofthemainframework,andlookedforwardtofurtherpromotioninthewebdevelopmentframeworkandresearch.Keywords:Webdevelopment;framework;Struts;Spring;Hibernate;1随着社会不断发展,网络技术日新月异,国内外信息化建设已经到了以Web应用为基础核心的阶段,越来越多的企业选择以Web来建立其应用系统。企业对系统功能需求的增加使企业级应用系统的结构和规模日趋庞大,而Web应用系统的开发也越来越复杂,开发周期越来越紧迫,这也要求开发者采用一种合适的方法来开发软件,以便降低开发和维护成本,提高程序的复用性。于是各种具有不同特点的Web开发框架应运而生,解决这一问题在于选用良好的框架技术。1国外Web开发技术文献综述MVC结构模式是XeroxPARC在20世纪80年代为编程语言Smalltalk-80发明的一种软件设计模式。缑艳阳认为MVC将应用程序分为三个核心模块:模型、视图和控制器,分别处理不同的任务,其主要目的是分离业务逻辑层和表现层。[1]Struts最早是ApacheJakarta项目的组成部分,开始的代码基础从2000年5月开始开发,1.0版本于2001年6月发布。Struts框架的主要架构设计和开发者是CraigR.McClanahan,他现在是Sun的JavaServerFaces(JSR-127)以及J2EE平台的Web层架构的规范领导。2003年,DavidHeinemeierHansson创建一种Web开发技术Rails,并一直延伸Rails核心团队,2100多名捐助者,一个充满活力的生态系统支持。2003年,TebHusted、CedricDumoulin等学者提出框架是可重用的半完成的应用程序,可以用来产生专门的定制程序。框架一般具有即插即用的可重用性、成熟的稳定性以及良好的团队协作性。[2]2007年初,ApacheStruts团队已经发布下一代产品Struts2,是在Struts和WebWork的技术基础上进行了合并的全新的Struts2框架。2007年,EyalOren,ArminHaller,ManfredHauswirth,BenjaminHeitmann提出语义Web2.0,他们认为语义Web应用框架扩展了RubyonRails,使其支持集成语义Web混搭应用的快速开发。当前的Web应用大多是数据库驱动的。开发者设计一个数据库架构,在此架构上构建应用逻辑,生成用于用户交互的Web页面。这些应用是中心化的,并且依赖于它们自己的关系数据库,限制了数据集成的可能性。混搭应用(通常称为Web2.0应用)是一种新兴的Web开发范式,可以组合多个不同Web应用的功能。语义Web是一个可以由机器进程处理的Web数据网络,可以在现有的Web网络基础上进行数据重用和数据集成。[3]相比在传统的数据库,在语义Web数据上构建社交网络应用有如下几个优势。使用语义Web数据的全局标示符和基于图的模型,可以跟随图中的链接,从在线数据源按需获取附加的信息,从而实现数据集成。22国内Web开发技术文献综述2008年刘胜利、寿永熙提出框架是软件系统的设计、开发过程中的一个概念,它强调对已完成的设计、代码的重复使用。框架往往都是针对某个特定应用领域的,是在对这个应用领域进行深刻理解的基础上,抽象出该应用的概念模型,是一个有形无形的框架,不同的具体应用根据自身的特点对框架中的抽象概念进行实现,完成应用的功能。基于J2EE标准的框架基本上都是封装了许多组类,利用这些类之间特定的相互协作,为一些通用问题提供解决方案。[4]其中典型的有Struts框架、Spring框架、Hibernate框架和Jsf框架等。2008年,北京工业大学张曦硕士认为,如今围绕Web应用系统的开发技术竞争也日趋激烈。技术进步和需求多样化使得产品寿命周期不断缩短,企业面临着缩短产品开发周期,提高产品质量,降低成本和改进性能的压力。[5]这就要求企业能快速对不断变化的市场做出反应,开发满足用户需求的定制的个性化产品去占领市场一席地以赢得竞争,市场的竞争也主要围绕产品的竞争而展开。3Web开发框架的现状北京交通大学硕士谭欢说,现在,不少企业采用基于Internet的应用来构筑企业信息架构。J2EE技术作为如今最流行的分布式计算平台,已成为基于Web的企业应用的核心部分。基于J2EE的Web开发框架可以为采用Java服务器端技术开发的人员提供一种可重用的体系结构,可以便捷地使用Web开发技术并专注于具体的业务逻辑。同时,B/S框架成为目前主流的企业应用系统的开发体系。[6]因为B/S框架不需要客户端安装系统软件,具有易用性、通用性和良好的可扩展性等优点,它支持实时的信息发布,动态的用户交互及与后台系统安全灵活的连接。也正因为这,构造功能强大、应用灵活、开发简便的Web应用程序成为当前Internet技术发展的热点。4主流Web开发框架分析4.1MVC结构模式和WebWork框架2012年王欢认为MVC的工作原理是,使用MVC时,当用户向Web容器发送一个请求后,Web容器会根据请求和地址去调用一个Servlet进行处理,当Servlet处理完成以后,它需要将结果页面回送给Web容器。[7]缑艳阳在计算机与网络发表说WebWork是比较领先的MVC框架之一,是OpenSymphony组织的一个开放源码项目,致力于组件化和代码重用。[1]34.2Struts框架2002年,国外C.Cavaness专家认为Struts是一个典型的MVC框架,它也包含了上述三个组成部分。JavaBean和EJB组件模型层次组成。行动和ActionServlet的控制器实现,视图层的JSP文件组成。中央控制器控制,接收到一个请求,这个请求重定向到相应的模块控制器执行动作。随后,该模块控制器处理请求并返回结果到中央控制器使用一个JavaBean对象,它存储在视图层包括显示模块,必须提出的意见,提出的任何对象。中央控制器返回的JavaBean对象重定向到主视图显示它的信息。[8]Struts的侧重于降低性能和逻辑之间的耦合,而较少关注业务层和持久层之间的相关性。Struts名字来源于在建筑和旧式飞机中使用的支持金属架。“Struts”这名字是为了提醒我们记住支撑我们房屋,建筑,桥梁等物的基础支撑。就如我们的软件系统产品,软件工程师使用Struts为各种业务应用的每一层提供支持。Struts1经过六年多的发展,已经是一个高度成熟的框架,不管在稳定性方面还是可靠性方面都得到了广泛的证明。市场占有率也超过20%,几乎已经成为了事实上的工业标准。但随着时间的流逝,技术的进步,Struts1的局限性也暴露出来,并制约了Struts1的继续发展。Struts的优势:1、表现欲逻辑分离,使开发流程和架构更加合理;2、Struts为系统开发人员提供了充分的扩展机制,维护扩展比较方便;3、业界“标准”,学习资源丰富,HTML标签优秀。当然,Struts也有它的缺点:1、Taglib的使用使表现层的处理过于复杂,不利于系统的再设计和升级,不利于客户接手系统,增加了开发人员的工作量,从而大大增加了系统的开发成本。2、表单验证没有考虑复用,而且没有对前端验证提出方案,不便于在大型系统中使用。4.3Spring框架徐景秀在期刊发表说Spring是一个开源框架,它由RodJohnson在2004年3月24日发布创建,并在他的著作《J2EE设计开发编程指南》里进行了描述,这也使他一度成为一个改变Java世界的大师级人物。Spring致力于J2EE应用的各层的解决方案,而不仅仅专注于某一层的方案。可以说Spring是企业应用开发的“一站式”选择,同时贯穿表现层、业务层和持久层。Spring并没有取代那些已有的框架,而是和原有的框架进行了一次无缝地整合。另外,Spring的用途不仅限于服务器端的开发。[9]简单来说,Spring是一个轻量的控制反转和面向切面的容器框架,解决了许多在J2EE开发中常见问题的强大开源框架,它提供了管理业务对象的一致方法并且鼓励对接口编程而且也是对类编程的良好习惯。Spring框架有一下好处和缺点:1、低浸入式设计,代码的污染极低;2、独立于应4用服务器,可以真正实现“一次编写,随处可用”;3、Spring的高度开放性,并不强制应用完全依赖于Spring,开发者可自由选用Spring框架的部分和全部。它的缺点是使用人数少,JSP中要写很多代码,控制器过于灵活,缺少一个公用控制器;无法使用多个表的复合查询,必须使用SQL语句,这样使得表的映射文件失去意义。4.4Hibernate框架M.Raible学者认为,Hibernate是一个面对Java环境的对象/关系数据库映射工具,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以使用面向对象的编程思维来灵活操纵数据库,提供了对大多数主流数据库的良好支持,提供了完善的数据关联、事务管理、缓存管理、延迟加载机制,在很大程度上简化了对数据的查询,加快了开发效率。利用Hibernate,开发人员可以按照Java的基础语意,包括关联、继承、多态、组合以及Java的集合架构进行持久层的开发。[10]2011年时,王海涛、贾宗璞提出Hibernate持久层框架。其主要作用是对Java类与数据库中的表进行映射,完成数据的持久化,同时也提供数据的查询、一致性检查、事务管理等机制。也可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用。另外,由于在编程中不会有特定数据库相关的代码,所以我们可以很容易的移植数据库而不用修改Java代码,只需要修改databaseschema及O/R映射文件,大大提高了系统的灵活性。Hibernate版本更新速度很快,目前为止有两个阶段性的版本:Hibernate2,Hibernate3和Hibernate4,这一点程序员从其Jar文件名便可以看出来。目前最新发布的版本是hibernate-core-4.1.1.Final。[11]Hibernate的优势在于:1、Hibernate的性能好,映射的灵活性很出色;2、支持各种关系数据库,从一对一到多对多的各种复杂关系。5利用各种框架技术的优势整合论述5.1J2EE优势特点2008年大连交通大学的于东超认为目前Web开发技术有Php、Asp、Asp.net等等,但J2EE有其特有的优势保障,J2EE平台的成熟,