英语原文共 11 页,剩余内容已隐藏,支付完成后下载完整资料
基于SSH的web技术介绍
1、引言
随着Java技术的逐渐成熟与完善,作为建立企业级应用的标准平台,J2EE平台得到了长足的发展。借助于J2EE规范中包含的多项技术:Enterprise JavaBean(EJB)、Java Servlets(Servlet)、Java Server Pages(JSP)、Java Message Service(JMS)等,开发出了许多应用系统。但是,在传统J2EE应用的开发过程中也出现了一些问题:
1)数据模型和逻辑模型之间的矛盾。目前使用的数据库基本上都是关系型数据库,而Java本质上是一种面向对象的语言,对象在存储和读取时使用SQL和JDBC进行数据库操作,降低了编程的效率以及系统的可维护性。
2)传统的J2EE应用多采用基于EJB的重量级框架,这种框架适合于开发大型企业应用,但是使用EJB容器进行开发和调试需要耗费大量时间。为了降低代码的耦合性,提高系统的开发效率,本文提出了一种基于Struts框架、Spring框架和Hibernate框架的J2EE应用开发策略。
2、JSP及JAVA平台介绍
JSP(JavaServer Pages)由Sun Microsystems,Inc.发起,许多公司参与建立动态网页技术标准。JSP技术有点类似于ASP技术,它是在传统的HTML网页文档中(*。HTM,*.HTML插入Java编程段落(Script Table)和JSP标记(TAG),从而生成JSP文档(*.JSP)。使用JSP开发的Web应用程序是跨平台的,可以在Linux上运行,也可以用于其他操作系统。
JSP技术使用Java编程语言编写的XML标签和脚本类,生成动态页面包处理逻辑。页面也可以通过标签访问,脚本允许存在于逻辑资源的服务端。JSP页面逻辑与网页设计和显示分离,支持可重用的基于组件的设计,基于Web的应用程序开发快捷方便。
Web服务器在面对访问JSP页面的请求时,先执行JSP的过程,然后再结合JSP文档的执行结果用HTML代码返回给客户。插入Java编程操作的数据库可以重新定向网站,以实现动态页面的建立所需的功能。JSP和Java Servlet,是在服务器的实现中,通常返回给客户端的是一个HTML文本,只要客户端浏览器就能访问。
最终版本的JSP 1.0规范发布于1999年9月,12月引入了1.1规范。目前比较新的是JSP 1.2规范,JSP2.0规范草案也已经出台。
JSP页面从HTML代码和Java代码嵌入其中的一个组件。服务器在Java代码之后的客户端请求页面中,然后生成HTML页面返回客户端浏览器。JavaServlet JSP是技术基础和大规模Web应用程序开发需要的Java Servlet和JSP支持完成。JSP具有Java技术简单易用、完全面向对象、与平台无关、安全等特点,主要适用于Internet的所有特点。JSP技术优势:(1)时间准备,到处跑。此时JAVA优于PHP,除了系统外,代码不做任何修改。(2)多平台支持。基本上在任何开发环境的所有平台上,在任何环境中进行部署,在任何环境中进行扩展。比较ASP/PHP的局限性是显而易见的。(3)可扩展性强。
从只有一个小JAR文档可以运行Servlet /JSP,到多个服务器集群和负载均衡,向多个应用程序进行事务处理、信息处理、服务器到众多服务器,Java显示了巨大的生命力。(4)多元化和强大的开发工具支持。这与ASP类似,Java已经有很多很好的开发工具,而且很多都可以免费,而且很多都能在各种平台下运行。JSP技术易受攻击:(1)与ASP相同,Java的优点是其一些致命的问题。正是因为为了跨平台的功能,为了最大限度地扩展容量,大大增加了产品的复杂性。(2)Java的速度是类完成永久内存,所以在一些使用内存的情况下,与用户的数量相比确实是一个“最低性价比”。另一方面,它还需要磁盘空间来存储一系列。Java文档和类以及相应的文档版本。
Java编写的程序比C语言中的程序慢,需要更多的内存。然而,Java程序的执行速度在1997/1998引入了Java 1.1的即时编译,支持支持更好的代码分析的语言特征(如内部类,StringBu)显著提高。Java虚拟机本身的FFER类、可选断言等,以及优化,例如热点在2000成为Sun的JVM的默认值。目前,Java代码的性能大约是C代码的一半。
有些平台为Java提供直接的硬件支持;有微控制器可以在硬件中运行Java而不是软件JVM,ARM处理器可以通过JavelEnter选项来执行Java字节码的硬件支持。
自动内存管理Java使用自动垃圾回收器来管理对象生命周期中的内存。程序员确定对象何时创建,而Java运行时负责在对象不再使用时恢复内存。一旦没有对象的引用保留下来,不可访问的内存就可以被垃圾收集器自动释放。如果程序员的代码保存了对不再需要的对象的引用,通常当不再需要的对象存储在仍在使用的容器中时,仍然可能发生类似于内存泄漏的情况。如果调用不存在的对象的方法,则会引发“空指针异常”。
Java的自动内存管理模型背后的一个思想是程序员可以免除不得不执行手动内存管理的负担。在某些语言中,用于创建对象的内存是在堆栈上隐式分配的,或者是从堆中显式分配和释放的。在后者中,管理内存的责任由程序员承担。如果程序不释放对象,则会发生内存泄漏。如果程序试图访问或解除分配已经解除分配的内存,那么结果是未定义的,很难预测,并且程序ls可能变得不稳定和/或崩溃。这可以通过使用智能指针来部分修复,但这些会增加开销和复杂性。请注意,垃圾收集文档并不能防止“逻辑”内存泄漏,即那些内存仍然被引用但从未被使用的内存泄漏。
垃圾收集可能随时发生。理想情况下,当程序空闲时会发生这种情况。如果堆上没有足够的空闲内存来分配一个新对象,就保证触发它;这会导致程序暂时停止。明确的在Java中内存管理是不可能的。
3、用Struts实现MVC架构
MVC(Model-View-Controller)由Trygve Reenskaug提出,首先被应用在SmallTalk-80环境中,是许多交互和界面系统的构成基础。根据界面设计可变性的需求,MVC把交互系统的组成分解成模型、视图、控制器三部分。 模型(Model)是软件所处理问题逻辑在独立于外在显示内容和形式情况下的内在抽象,封装了问题的核心数据、逻辑和功能的计算关系,独立于具体的界面表达和I/O操作。视图(View)把表示模型数据及逻辑关系和状态的信息及特定形式展示给用户。它从模型获得显示信息,对于相同的信息可以有多个不同的显示形式或视图。控制器(Controller)是处理用户与软件的交互操作的,其职责是控制提供模型中任何变化的传播,确保用户界面于模型间的对应联系;它接受用户的输入,将输入反馈给模型,进而实现对模型的计算控制,是使模型和视图协调工作的部件。通常一个视图对应一个控制器。模型、视图与控制器的分离,使得一个模型可以具有多个显示视图。如果用户通过某个视图的控制器改变了模型的数据,所有其它依赖于这些数据的视图都应反映到这些变化。因此,无论何时发生了何种数据变化,控制器都会将变化通知所有的视图,导致显示的更新。这实际上是一种模型的变化-传播机制。
Struts框架最早是作为Apache Jakarta项目的组成部分问世运做,它继承了MVC的各项特性,并根据J2EE的特点,做了相应的变化与扩展。Struts框架很好的结合了Jsp,Java Servlet,Java Bean,Taglib等技术。在Struts中,承担MVC中控制器角色的是ActionServlet。ActionServlet是一个通用的控制组件。这个控制组件提供了处理所有发送到Struts的HTTP请求的入口点。它截取和 分发这些请求到相应的动作类(这些动作类都是Action类的子类)。另外控制组件也负责用相应的请求参数填充Action Form(FromBean),并传给动作类(ActionBean)。动作类访问核心商业逻辑,即访问Java Bean或调用EJB。最后动作类把控制权传给后续的JSP文件,由JSP文件生成视图。所有这些控制逻辑利用Struts-config.xml文件来配置。在Struts框架中,视图主要由JSP生成页面完成,Struts提供丰富的JSP标签库,这有利于分开表现逻辑和程序逻辑。模型以一个或多个Java Bean的形式存在。在Struts中,主要存在三种Bean,分别是:Action,ActionForm,EJB或者Java Bean。 Struts框架没有具体定义模型层的实现,在实际开发中,模型层通常是和业务逻辑紧密相连的,并且要对底层数据进行操作。下面介绍一种开发策略,将Hibernate引入到Struts框架的模型层中,使用它来进行数据封装和映射,提供持久化的支持。
4、Spring 应用构架
Spring明显区别于其他轻量级application framework, 它将专注于web的支持,与struts 和 webwork有着明显的区别。在和struts 和 webwork的对比上,Spring是一个服务于所有层面的application framework:提供了bean的配置基础,AOP的支持,JDBC的提取框架,抽象事务支持,等等。它有一个非常显著的特点:在某个层面上如果你不需要Spring的支持,你就可以不使用String的class,只使用它的某一部分的功能。 从它的设计理念,你可以看到String 帮助你实现了真正的逻辑层和web层的分离:例如。一个校验应用将不用依靠controllers,就可以实现。这样的目标是 更好的重用和易测:过分依靠不必要的容器和框架将不能实现这一点。
当然,Spring 的自己的web支持和通常框架模式的细致完整.然而,Spring替换struts,webwork或者其他的web方案非常的容易.对于Spring的web支持或者不同的地方,Spring 允许你在web容器里面建立一个中间层,在测试环境或者标准独立的应用里面来设置重用你的商务逻辑.还有在J2EE环境里面,你的商务逻辑不必依靠容器提供的服务,像JTA ,EJB的支持.良好的构架的web应用可以运行在任何容器上,如,Tomcat 或者 Resin. 值得注意的是,Spring 不是和已经存在的解决方案进行竞争. 我们鼓励结合标准的技术,如, Servlet, JSP, JTA, JNDI, JDBC, and JDO, 和非常匹配的工具,如,Hibernate, Velocity, Log4J, and Cauchos Hessian/Burlap.这个框架的的设计思想是在你的应用需要改良的时候,你将会做一些技术的选择:例如,如果你需要分布式事务处理,你可能需要用Spring的Jta TransactionManager 来实现JTA服务.或者,用DataSourceTransactionManager or HibernateTransactionManager 来实现美妙完美的单个数据库交换。
5、Spring web 框架的设计思想
Spring 框架通过配置操作mappings,展示resolution,本地化和模版集成围绕着分派请求操作的servlet - DispatcherServlet设计的.缺省的操作是一个非常简单的控制接口, 他只提供了ModelAndView handleRequest(request,response)方法.这将用于一个应用的控制,但是,如果你想包含多个层次的控制,AbstractController, AbstractCommandController, MultiActionController, SimpleFormController, AbstractWizardFormController 将帮助你完成.应用控制将代表那些子系统.注意,你可以选择一个适当的基类:如果你没有 web form,你就不必用FormController.这就是和Struts最大的不同. 你可以通过命令或者form对象来操作任何对象:这不需要接口工具或者一个基础类的驱动.Spring的数据邦定是非常的灵活的.举例来说,它描述了具有在应用范围内的校验错误的输入机制,但不是系统错误.所以在你的form对象里面你不必复制你的业务对象的string属性,只操作出错的子任务,或者适当地转换string.换句话说,它通常可以很好的直接邦定你的业务对象. 这也是和struts围绕请求基础类Action 和 ActionForm (每个action操作类型) 建立主要的不同之一. 对比WebWork,Sping更多的区别在于对象角色:Sping支持控制器的感念,一个操作命令或者form对象,和得到数据传递给视图的模式.这个模式通常包含命令和form对象,但有时也包含任意的参考数据.换句话说,一个WebWork Action联合所有这些角色到一个单独的对象.WebWork 允许你用已经存在的业务对象作为你 form 的一部分,但是只生成各自Action 的 bean 属性. 最后,操作请求的Action 实例在一个视图里面获得付值和form population. 然而,参考数据也需要作为Action 的属性被模拟. 一个类里面有太多的角色是值得讨论的. 关于视图:Spring的视图方案非常的灵活. 一个控制器执行可以通过response 返回ModelAndView对象null,就可以直接写到一个视图.在通常的状况下,一个ModelAndView实例结合了 一个view 和一个 model Map,包含了bean name 和 通讯对象(像命令或者form,参考数据等等). View名称是非常高端的的配置,不是通过bean name, 一个properties 文件就是通过你自己的ViewResolver.这个抽象的model Map 允许你在视图层面完成提取,没有任何的争辩JSP/Ve
剩余内容已隐藏,支付完成后下载完整资料
资料编号:[441823],资料为PDF文档或Word文档,PDF文档可免费转换为Word
以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。