外文翻译 Java技术及SSH框架和Jsp技术的介绍

上传人:仙*** 文档编号:33830132 上传时间:2021-10-19 格式:DOC 页数:34 大小:236.50KB
收藏 版权申诉 举报 下载
外文翻译 Java技术及SSH框架和Jsp技术的介绍_第1页
第1页 / 共34页
外文翻译 Java技术及SSH框架和Jsp技术的介绍_第2页
第2页 / 共34页
外文翻译 Java技术及SSH框架和Jsp技术的介绍_第3页
第3页 / 共34页
资源描述:

《外文翻译 Java技术及SSH框架和Jsp技术的介绍》由会员分享,可在线阅读,更多相关《外文翻译 Java技术及SSH框架和Jsp技术的介绍(34页珍藏版)》请在装配图网上搜索。

1、毕业设计(论文)外文资料翻译学 院: 计算机工程学院 专业班级: 学生姓名: 学 号: 指导教师: 外文出处:(外文) http:/en.wikipedia.org/wiki/java_(programming_language) 附 件:1.外文资料翻译译文; 2.外文原文 指导教师评语:签名: 年 月 日Java技术及SSH框架和Jsp技术的介绍Java,是一种可以撰写跨平台应用软件的面向对象的程序设计语言,由当时任职太阳微系统的詹姆斯高斯林(James Gosling)等人于1990年代初开发。它最初被命名为Oak,目标设置在家用电器等小型系统的编程语言,来解决诸如电视机、电话、闹钟、烤

2、面包机等家用电器的控制和通讯问题。由于这些智能化家电的市场需求没有预期的高,Sun放弃了该项计划。就在Oak几近失败之时,随着互联网的发展,Sun看到了Oak在计算机网络上的广阔应用前景,于是改造了Oak,在1995年5月以“Java”的名称正式发布了。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。Java编程语言的风格十分接近C+语言。继承了C+ 语言面向对象技术的核心,Java舍弃了C+语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading)、多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间

3、。在Java SE 1.5版本中Java又引入了泛型编程(Generic Programming)、类型安全的枚举、不定长参数和自动装/拆箱等语言特性。Java不同于一般的编译运行计算机语言和解释执行计算机语言。它首先将源代码编译成字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码,从而实现了“一次编译、到处执行”的跨平台特性。不过,这同时也在一定程度上降低了Java程序的运行效率。但在J2SE1.4.2发布后,Java的运行速度有了大幅提升。与传统程序不同Sun公司在推出Java之际就将其作为一种开放的技术。全球数以万计的Java开发公司被要求所设计的Java软件必须

4、相互兼容。“Java语言靠群体的力量而非公司的力量”是Sun公司的口号之一,并获得了广大软件开发商的认同。这与微软公司所倡导的注重精英和封闭式的模式完全不同。Sun公司对Java编程语言的解释是:Java编程语言是个简单、面向对象、分布式、解释性、健壮、安全与系统无关、可移植、高性能、多线程和动态的语言。Java的历史Duke,Java语言的吉祥物语言最开始只是太阳微系统(Sun MicroSystems)公司在1990年12月开始研究的一个内部项目。太阳微系统公司的一个叫做帕特里克?诺顿的工程师被公司自己开发的C+和C语言编译器搞得焦头烂额,因为其中的API极其难用。帕特里克决定改用NeXT

5、,同时他也获得了研究公司的一个叫做“Stealth计划”的项目的机会。“Stealth计划”后来改名为“Green计划”,詹姆斯高斯林和麦克?舍林丹也加入了帕特里克的工作小组。他们和其他几个工程师一起在加利福尼亚州门罗帕克市沙丘路的一个小工作室里面研究开发新技术,瞄准下一代智能家电(如微波炉)的程序设计,太阳公司预料未来科技将在家用电器领域大显身手。团队最初考虑使用C+语言,但是很多成员包括太阳的首席科学家比尔?乔伊,发现C+和可用的API在某些方面存在很大问题。工作小组使用的是内嵌类型平台,可以用的资源极其有限。很多成员发现C+太复杂以至很多开发者经常错误使用。他们发现C+缺少垃圾回收系统,

6、还有可移植的安全性、分布程序设计、和多运行续功能。最后,他们想要一种易于移植到各种设备上的平台。根据可用的资金,比尔?乔伊决定开发一种集C语言和Mesa语言大成的新语言,在一份报告上,乔伊把它叫做“未来”,他提议太阳公司的工程师应该在C+的基础上,开发一种面向对象的环境。最初,高斯林试图修改和扩展C+的功能,他自己称这种新语言为C+ + -,但是后来他放弃了。他将要创造出一种全新的语言,被他命名为“Oak”(橡树),以他的办公室外的橡树命名。就像很多开发新技术的秘密工程一样,工作小组没日没夜地工作到了1992年的夏天,他们能够演示新平台的一部分了,包括Green操作系统,Oak的程序设计语言,

7、类库及其硬件。最初的尝试是面向一种类PDA设备,被命名为Star7,这种设备有鲜艳的图形界面和被称为“Duke”的智能代理来帮助用户。1992年12月3日,这台设备进行了展示。同年11月,Green计划被转化成了“FirstPerson有限公司”,一个太阳公司的全资子公司,团队也被重新安排到了帕洛阿尔托。FirstPerson团队对建造一种高度交互的设备感兴趣,当时代华纳发布了一个关于电视机顶盒的征求提议书时(Request for proposal),FirstPerson改变了他们的目标,作为对征求意见书的响应, 提出了一个机顶盒平台的提议。但是有线电视业界觉得FirstPerson的平台

8、给予用户过多的控制权,因此FirstPerson的投标败给了SGI。与3DO公司的另外一笔关于机顶盒的交易也没有成功,由于他们的平台不能在电视工业产生任何效益,公司被并回太阳公司。Java和互联网1994年6月、7月间,在经历了一场历时三天的脑力激荡的讨论后,约翰盖吉、詹姆斯高斯林、比尔乔伊、帕特里克诺顿、韦恩罗斯因和埃里克斯库米,团队决定再一次改变了努力的目标,这次他们决定将该技术应用于万维网。他们认为随着Mosaic浏览器的到来,因特网正在向同样的高度互动的远景演变,而这一远景正是他们在有线电视网中看到的。作为原型,帕特里克诺顿写了一个小型万维网浏览器,WebRunner,后来改名为Hot

9、Java。Java和“Java”由于商标搜索显示,Oak已被一家显卡制造商注册。于是同年,Oak被改名为Java。当使用十六进制编辑器打开由Java源代码编译出的二进制文件(.class文件)的话,最前面的32位将显示为CA FE BA BE,即词组“CAFE BABE”(咖啡屋宝贝)。编辑 Java和浏览器1994年10月,HotJava和Java平台为公司高层进行演示。1994年,Java 1.0a版本已经可以提供下载,但是Java和HotJava浏览器的第一次公开发布却是在1995年3月23日SunWorld大会上进行的。升阳公司的科学指导约翰盖吉声明Java技术。这个发布是与网景公司的

10、执行副总裁马克安德森的惊人发布一起进行的,宣布网景将在其浏览器中包含对Java的支持。1996年1月,升阳公司成立了Java业务集团,专门开发Java技术。Java近况在流行几年之后,Java在浏览器中的地位被逐步侵蚀。它在简单交互性动画方面的用途已经完全被Adobe公司的Flash排挤,2005年Java倾向只被用于雅虎游戏那样的更为复杂的应用程序。Java同时遭受到来自微软的反对,他们决定在新版本的Internet Explorer和Windows中不再附带Java平台。与此相反。在万维网的服务器端和手持设备上,Java变得更加流行。很多网站在后端使用JSP和其他的Java技术。在桌面系统

11、上,独立的Java程序还是相对少见,这是因为Java平台的运行开销较大,而许多人的电脑上没有安装Java,由于网络带宽在以前较小,下载Java曾经是个耗时的事情。但是随着计算机计算能力、网络带宽在10年中取得了很大的进步,同时虚拟机和编译器的质量得到了提高,许多应用程序得到了广泛的使用,包括:开源软件:NetBeans和Eclipse等软件开发工具、JEdit、Azureus BitTorrent客户端、JNode操作系统、Apache软件基金会的Ant、Derby、Hadoop、Jakarta、POI和Tomcat、JBoss和GlassFish应用服务器;商用软件:EIOffice(永中O

12、ffice)、纯Java 3D游戏合金战士Chrome、IBM Websphere、ColdFusion和WebLogic。目前Java提供以下三个版本:Java Platform, Enterprise Edition(Java EE:Java平台企业版)、Java Platform, Standard Edition(Java SE:Java平台标准版)、Java Platform, Micro Edition(Java ME:Java平台微型版)Java Platform, Card Edition。Java开放源代码项目2006年SUN在JavaOne公布Java 开放源代码项目,并推

13、出OpenJDK计划。2 Java虚拟机、Java编译器和Java类库以GNU通用公共许可证公开。Java语言之所以被开发,是要达到以下五个目的:应当使用面向对象程序设计方法学、应当允许同一程序在不同的计算机平台执行、应当包括内建的对计算机网络的支持、应当被设计成安全地执行远端代码、应当易于使用,并借鉴以前那些面向对象语言(如C+)的长处。Java技术主要分成几个部分:Java语言、运行环境JVM、类库。一般情况下说Java时并不区分指的是哪个部分。Java在1.5版本时,做了重大改变,太阳公司并1.5版本重命名为Java 5.0。面向对象Java的特点之一就是面向对象,是程序设计方法的一种。

14、“面向对象程序设计语言”的核心之一就是开发者在设计软件的时候可以使用自定义的类型和关联操作。代码和数据的实际集合体叫做“对象”。一个对象可以想像成绑定了很多“行为(代码)”和“状态(数据)”的物体。对于数据结构的改变需要和代码进行通信然后操作,反之亦然。面向对象设计让大型软件工程的计划和设计变得更容易管理,能增强工程的健康度,减少失败工程的数量。面向对象设计另外一个目标就是能产生很多的有关联的类,可以让软件的再开发变得简单。举例来说,很多软件工程都有同样的功能,尤其是很多应用了同一原理组织的软件工程。软件的二次开发者想自己为软件开发插件以增强功能的时候,绝对不想看到混乱的开发代码和管理计划。面

15、向对象的目的就是不生产难懂且难以使用的代码,为软件各个功能群之间创建有效的通信通道。很多开源软件社区正在计划给软件作者提供更多的类来让软件的二次开发变得简便。跨平台性Java语言的第二个特性就是跨平台性,也就是说使用Java语言编写的程序可以在编译后不用经过任何更改,就能在任何硬件设备条件下运行。这个特性经常被称为“一次编译,到处运行”。执行Java应用程序必须安装Java Runtime Environment(JRE),JRE内部有一个Java虚拟机(Java Virtual Machine,JVM)以及一些标准的类库(Class Library)。通过JVM的虚拟机才能在电脑系统执行Ja

16、va应用程序(Java Application),这与.Net Framework的情况一样,所以电脑上没有安装JVM,那么这些程序将不能够执行。实现跨平台性的方法是大多数编译器在进行Java语言程序的编码时候会生成一个用字节码(Bytecode)写成的“半成品”,这个“半成品”会在Java虚拟机(解释层)的帮助下运行,虚拟机会把它转换成当前所处硬件平台的原始代码。之后,Java虚拟机会打开标准库,进行数据(图片、线程和网络)的访问工作。主要注意的是,尽管已经存在一个进行代码翻译的解释层,有些时候Java的字节码代码还是会被JIT编译器进行二次编译。有些编译器,比如GCJ,可以自动生成原始代码

17、而不需要解释层。但是这些编译器所生成的代码只能应用于特定平台。并且GCJ目前只支持部分的Java API。甲骨文公司对于Java的许可是“全兼容的”,这也导致了微软和升阳关于微软的程序不支持RMI和JNI接口、并且增加特性为己所用的法律争端。升阳最终赢得了官司,获得了大约两千万美元的赔偿,法院强制要求微软执行升阳公司关于Java的许可要求。作为回应,微软不再在Windows系统中捆绑Java,最新的Windows版本,Windows Vista和Internet Explorer 7.0版本也不再提供对于Java应用程序和控件的支持。但是升阳公司和其他使用Java运行时系统的公司对于微软的操作

18、对用户提供无偿的第三方插件和程序支持。Java语言使用解释层最初是为了轻巧性。所以这些程序的运行效率比C语言和C+要低很多,用户也对此颇有微词。很多最近的调查显示Java的程序运行速度比几年前要高出许多,有些同样功能的程序的效率甚至超过了C+和C语言编写的程序。Java语言在最开始应用的时候是没有解释层的,所有需要编译的代码都直接转换成机器的原始代码。这样做的后果就是获得了最佳的性能,但是程序臃肿异常。从JIT技术开始,Java的程序都经过一次转换之后才变成机器码。很多老牌的第三方虚拟机都使用一种叫做“动态编译”的技术,也就是说虚拟机实时监测和分析程序的运行行为,同时选择性地对程序所需要的部分

19、进行编译和优化。所有这些技术都改善了代码的运行速度,但是又不会让程序的体积变得失常。程序的轻便性事实上是软件编写很难达到的一个目标,Java虽然成功地实现了“一次编译,到处运行”,但是由于平台和平台之间的差异,所编写的程序在转换代码的时候难免会出现微小的、不可察觉的错误和意外。有些程序员对此非常头疼,他们嘲笑Java的程序不是“一次编译,到处运行”,而是“一次编译,到处调试”。平台无关性让Java在服务器端软件领域非常成功。很多服务器端软件都使用Java或相关技术创建。Java的性能和复杂性关于Java的批评Java试图通过新的方式解决软件编写的复杂性。很多人认为Java语言做到了它承诺的一切

20、。但是Java并不是一门完美的语言。整体性问题并不是所有的工程和环境需要企业级别的复杂性,比如一个简单的个人网站或者独自编程的程序师所写的程序。这些程序师会发现Java的复杂管理对于自己要做的程序来说过于强大了。一些人觉得Java在面向对象上面做的没有Ruby和Smalltalk纯粹。但是最新出现的用Java实现的语言Groovy解决了这些问题。作为一种已经创建的新技术,Java显然综合了很多语言的特性,比如C+、C语言、Python等等。一些对于Java的评论认为Java的不变性在动摇。语言问题有些程序师不喜欢原始类型(primitive type)和类(class)的分离,尤其是那些曾经使

21、用过Smalltalk和Ruby的程序师。Java的代码相对于其他的代码来说过于冗长,这与它的轻便化声明相违背。Java是一种单层继承的语言。这也导致了程序师在试图使用多重继承时候的不便,而很多语言都可以使用这个特性。但是Java可以使用接口类,把多重继承可能导致的风险减少到最小。Java不支持运算符重载,这是为了防止运算符重载使得代码的功能变得不清晰。但是用Java实现的语言Groovy可以进行运算符重载。过去Java对于文本的操作和其他语言,比如Perl和PHP相比差的较多,但Java在1.4版本时候引入了正则表达式。类库问题使用Swing平台编写的带有GUI(图形用户接口)的程序和其他原

22、始程序非常不同。选用AWT工具包编写程序的程序师看到的都是原始接口,而且也无法获得先进的GUI编程支持,如果使用的话,就要提供每个平台上面所需的API,这将是一项庞大的工程。Swing则是完全用Java语言所写的程序,避免了接口元素重复的问题,只使用所有平台都支持的最基本的绘图机制。但是很多用户不知道如何在Java风格和Windows风格之间进行转换,结果造成了Java程序的接口在很多程序中非常特殊。苹果电脑已经提供了优化过的Java运行时程序,包含了Mac OS X的经典Aqua接口风格。性能问题由于Java编译器和虚拟机的不同对Java代码的性能影响比语言本身的影响大的多,所以统一讨论Ja

23、va的程序的性能经常是有误导性的。据IBM的数据,在同样的硬件上2001年时的IBM JDK版本的性能是1996年的JDK版本的十倍左右。见IBM东京研究院的数据: http:/www.is.titech.ac.jp/ppl2004/proceedings/ishizaki_slides.pdf 而即使是在同一时期,不同公司的JDK和JRE的性能也不一样,比如SUN、IBM、BEA等公司都有自己开发的JDK和JRE。Java语言的一些特性不可避免的有额外的性能代价,例如数组范围检查、运行时类型检查等等。Java程序的性能还会因为不同的动态复杂性和垃圾处理机制使用的多少而各有不同。如果JVM的实

24、现比较优化的话,那么这些功能甚至可以增加存储器分配的性能。这和总是使用STL或者托管C+的程序的情况类似。尽管如此,仍然有许多人认为Java的性能低。这部分归因于Sun公司最初的JVM实现使用未优化的解释机制来运行字节码。一些新版本的JVM使用Just-In-Time(JIT)编译器,在加载字节码的时候将其编译成针对运行环境的本地代码来实现一些本地编译器的优化特性。Just-In-Time机制和本地编译的性能比较仍旧是一个有争议的话题。JIT编译需要很多时间,对于运行时间不长或者代码很多的大型程序并不适宜。但是不算JIT编译阶段的话,程序的运行性能在很多JVM下可以和本地编译的程序一争短长,甚

25、至在一些计算比较密集的数值计算领域也是这样。目前,Java已经使用更先进的HotSpot技术来代替JIT技术,Java的性能有了更进一步的提升。另外,在使用-server选项运行java程序时,也可以对java进行更深入的优化,比如在运行时将调用较多的方法内联(inline)到程序中来提高运行速度,这就是所谓的“动态优化”,而本地编译器是无法做到这一点的;这也是一些java代码比对应用C/C+等语言编写的本地代码运行的更快的原因之一。微软的.NET平台也使用JIT编译器,所以也有类似问题。Java的设计目的主要是安全性和可携性,所以对于一些特性,比如对硬件架构和存储器地址访问的直接访问都被去除

26、了。如果需要间接调用这些底层功能的话,就需要使用JNI(Java本地接口)来调用本地代码,而间接访问意味着频繁调用这些特性时性能损失会很大,微软的.NET平台也有这样的问题。所以到目前为止,性能敏感的代码,例如驱动程序和3D视频游戏,还是大多使用本地编译,甚至直接以不直接支持面向对象的C语言或机器码编写。但最近已经有了许多用纯Java编写的3D游戏,其效果与用C语言编写的不相上下,例如“合金战士”(英文名:Chrome)。这主要是因为新版的Java 3D技术已经能像C+一样调用硬件加速,也就是使用显卡来加速,无论是C+还是Java语言写的3D游戏都是使用显卡及GPU来处理,从而使得CPU可以专

27、注于其他方面的工作。垃圾回收机制自动垃圾回收(Garbage Collection)C+语言被用户诟病的原因之一是大多数C+编译器不支持垃圾收集机制。通常使用C+编程的时候,程序员于程序中初始化对象时,会在主机存储器堆栈上分配一块存储器与地址,当不需要此对象时,进行解构或者删除的时候再释放分配的存储器地址。如果对象是在堆栈上分配的,而程序员又忘记进行删除,那么就会造成存储器泄漏(Memory Leak)。长此以往,程序运行的时候可能会生成很多不清除的垃圾,浪费了不必要的存储器空间。因此如果同一存储器地址被删除两次的话,程序会变得不稳定,甚至崩溃。因此有经验的C+程序员都会在删除之后将指针重置为

28、0,然后在删除之前先判断指针是否为0。C+中也可以使用“智能指针”(Smart Pointer)或者使用C+托管扩展编译器的方法来实现自动化存储器释放,智能指针可以在标准类库中找到,而C+托管扩展被微软的Visual C+ 7.0及以上版本所支持。智能指针的优点是不需引入缓慢的垃圾收集机制,而且可以不考虑线程安全的问题,但是缺点是如果不善使用智能指针的话,性能有可能不如垃圾收集机制,而且不断地分配和释放存储器可能造成存储器碎片,需要手动对堆进行压缩。除此之外,由于智能指针是一个基于模板的功能,所以没有经验的程序员在需要使用多态特性进行自动清理时也可能束手无策。Java语言则不同,上述的情况被自

29、动垃圾收集功能自动处理。对象的创建和放置都是在存储器堆栈上面进行的。当一个对象没有任何参考的时候,Java的自动垃圾收集机制就发挥作用,自动删除这个对象所占用的空间,释放存储器以避免存储器泄漏。注意程序员不需要修改finalize方法,自动垃圾收集也会发生作用。但是存储器泄漏并不是就此避免了,当程序员疏忽大意地忘记解除一个对象不应该有的参考的时候,存储器泄漏仍然不可避免,例如以下的程序: String str = 這是一段字串;System.out.println(s); for(int i) System.out.println(Hallo Would+i);在循环开始之前,字符串str已经

30、不会再用到了,但未将这个参考指向null,因此字符串str无法被gc所回收。这种存储器泄漏必须等到一个函数退出之后才会被系统取回,自不过发生的机率要比不激活垃圾收集机制的C+程序少很多。但是总体来讲,自动垃圾收集机制要安全和简单许多。不同厂商、不同版本的JVM中的存储器垃圾回收机制并不完全一样,通常越新版本的存储器回收机制越快,IBM、BEA、SUN等等开发JVM的公司都曾宣称过自己制造出了世界上最快的Template:WhatJVM,JVM性能的世界纪录也在不断的被打破并提高。IBM有一篇有关Java存储器回收机制比不激活垃圾收集机制的C+存储器处理快数倍的技术文章,而著名的Java技术书籍

31、Java编程思想(Thinking in Java)也有一段论述Java存储器及性能达到甚至超过C+的章节。Java的设计者们不想让Java有多重继承的特性,因为C+的多重继承显示了这种特性的困难。Java的接口功能可以提供同样的功能,但是又不会很复杂。应用程序开发接口在Java语言中,应用程序接口(API)化身成类,并且分组成为包。每个包中包含有相关的接口和类。对于不同的平台,Java提供了不同版本的包。API的设定由sun公司和其他公司通过JCP(Java社区程序)决定。任何公司和个人都可以参与这个工程,对API进行设计。2004年,IBM和BEA公司准备联合对官方的Java开源软件工程进

32、行支持,但是2005年初,sun公司拒绝了这个支持。JSP技术简介JSP(JavaServer Pages)是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。JSP技术有点类似ASP技术,它是在传统的网页HTML文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件(*.jsp)。用JSP开发的Web应用是跨平台的,即能在Linux下运行,也能在其他操作系统上运行。JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。网页还能通过tags和s

33、criptlets访问存在于服务端的资源的应用逻辑。JSP将网页逻辑与网页设计和显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序段,然后将执行结果连同JSP文件中的HTML代码一起返回给客户。插入的Java程序段可以操作数据库、重新定向网页等,以实现建立动态网页所需要的功能。JSP与Java Servlet一样,是在服务器端执行的,通常返回该客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览。JSP的1.0规范的最后版本是1999年9月推出的,12月又推出了1.1规范。目前较新的是JSP1.

34、2规范,JSP2.0规范的征求意见稿也已出台。JSP页面由HTML代码和嵌入其中的Java代码所组成。服务器在页面被客户端请求以后对这些Java代码进行处理,然后将生成的HTML页面返回给客户端的浏览器。Java Servlet 是JSP的技术基础,而且大型的Web应用程序的开发需要Java Servlet和JSP配合才能完成。JSP具备了Java技术的简单易用,完全的面向对象,具有平台无关性且安全可靠,主要面向因特网的所有特点。 Spring Spring Framework 是一个开源的Java/Java EE全功能栈(full-stack)的应用程序框架,以Apache许可证形式发布,也

35、有.NET平台上的移植版本。该框架基于 Expert One-on-One Java EE Design and Development(ISBN 0-7645-4385-7)一书中的代码,最初由 Rod Johnson 和 Juergen Hoeller等开发。Spring Framework 提供了一个简易的开发方式,这种开发方式,将避免那些可能致使底层代码变得繁杂混乱的大量的属性文件和帮助类。Spring 中包含的关键特性:强大的基于 JavaBeans 的采用控制翻转(Inversion of Control,IoC)原则的配置管理,使得应用程序的组建更加快捷简易。一个可用于从 app

36、let 到 Java EE 等不同运行环境的核心 Bean 工厂。数据库事务的一般化抽象层,允许声明式(Declarative)事务管理器,简化事务的划分使之与底层无关。内建的针对 JTA 和 单个 JDBC 数据源的一般化策略,使 Spring 的事务支持不要求 Java EE 环境,这与一般的 JTA 或者 EJB CMT 相反。JDBC 抽象层提供了有针对性的异常等级(不再从SQL异常中提取原始代码),简化了错误处理,大大减少了程序员的编码量。再次利用JDBC时,你无需再写出另一个 终止 (finally) 模块。并且面向JDBC的异常与Spring 通用数据访问对象(Data Acce

37、ss Object)异常等级相一致。以资源容器,DAO 实现和事务策略等形式与 Hibernate,JDO 和 iBATIS SQL Maps 集成。利用众多的翻转控制方便特性来全面支持,解决了许多典型的Hibernate集成问题。所有这些全部遵从Spring通用事务处理和通用数据访问对象异常等级规范。灵活的基于核心 Spring 功能的 MVC 网页应用程序框架。开发者通过策略接口将拥有对该框架的高度控制,因而该框架将适应于多种呈现(View)技术,例如 JSP,FreeMarker,Velocity,Tiles,iText 以及 POI。值得注意的是,Spring 中间层可以轻易地结合于任

38、何基于 MVC 框架的网页层,例如 Struts,WebWork,或 Tapestry,提供诸如事务管理等服务的面向方面编程框架。在设计应用程序Model时,MVC 模式(例如Struts)通常难于给出一个简洁明了的框架结构。Spring却具有能够让这部分工作变得简单的能力。程序开发员们可以使用Spring的 JDBC 抽象层重新设计那些复杂的框架结构。Spring结构框架Struts技术介绍Struts项目是Apache软件基金会(ASF)赞助的一个开源项目。它最初是Jakarta项目中的一个子项目,并在2004年3月成为ASF的顶级项目。它通过采用Java Servlet/JSP技术,实现

39、了基于Java EE Web应用的Model-View-ControllerMVC设计模式的应用框架Web Framework,是MVC经典设计模式中的一个经典产品。MVC结构在Struts中,已经由一个名为ActionServlet的Servlet充当 控制器(Controller)的角色,根据描述模型、视图、控制器对应关系的struts-config.xml的配置文件,转发视图(View)的请求,组装响应数据模型(Model)。在MVC的 模型(Model)部分,经常划分为两个主要子系统(系统的内部数据状态与改变数据状态的逻辑动作),这两个概念子系统分别具体对应Struts里的Action

40、Form与Action两个需要继承实现超类。在这里,Struts可以与各种标准的数据访问技术结合在一起,包括Enterprise Java Beans(EJB), JDBC与JNDI。在Struts的视图(View)端,除了使用标准的JavaServer Pages(JSP)以外,还提供了大量的标签库使用,同时也可以与其他表现层组件技术(产品)进行整合,比如Velocity Templates,XSLT等。通过应用Struts的框架,最终用户可以把大部分的关注点放在自己的业务逻辑(Action)与 映射关系的配置文件(struts-config.xml)中。发展历程在Java EE的Web应用

41、发展的初期,除了使用Servlet技术以外,普遍是在JavaServer Pages(JSP)的源代码中,采用HTML与Java代码混合的方式进行开发。因为这两种方式不可避免的要把表现与业务逻辑代码混合在一起,都给前期开发与后期维护带来巨大的复杂度。为了摆脱上述的约束与局限,把业务逻辑代码从表现层中清晰的分离出来,2000年,Craig McClanahan采用了MVC的设计模式开发Struts。后来该框架产品一度被认为是最广泛、最流行JAVA的WEB应用框架。Struts 2的合并示意图2006年,WebWork与Struts这两个优秀的Java EE Web框架(Web Framework

42、的团体,决定合作共同开发一个新的,整合了WebWork与Struts优点,并且更加优雅、扩展性更强的框架,命名为“Struts 2”,原Struts的1.x版本产品称为“Struts 1”。至此,Struts项目并行提供与维护两个主要版本的框架产品Struts 1与Struts 2。很多开发人员认为Struts目前尚不成熟,应用的成本较高。 附带的一点点建议: Struts的优点主要集中体现在两个方面:Taglib和页面导航。Taglib是Struts的标记库,灵活动用,能大大提高开发效率。 Struts这个名字来源于在建筑和旧式飞机中使用的支持金属架。它的目的是为了减少在运用MVC设计模型来

43、开发Web应用的时间。你仍然需要学习和应用该架构,不过它将可以完成其中一些繁重的工作。Struts跟Tomcat、Turbine等诸多Apache项目一样,是开源软件,这是它的一大优点,使开发者能更深入的了解其内部实现机制。Hibernate开源框架介绍Hibernate是一种Java语言下的对象关系映射解决方案。 它是使用GNU宽通用公共许可证发行的自由、开源的软件。它为面向对象的领域模型到传统的关系型数据库的映射,提供了一个使用方便的框架。 概览它的设计目标是将软件开发人员从大量相同的数据持久层相关编程工作中解放出来。无论是从设计草案还是从一个遗留数据库开始,开发人员都可以采用Hibern

44、ate。Hibernate不仅负责从Java类到数据库表的映射(还包括从Java数据类型到SQL数据类型的映射),还提供了面向对象的数据查询检索机制,从而极大地缩短的手动处理SQL和JDBC上的开发时间。.NET 上的 HibernateHibernate 有个在 .NET Framework 上的实现版本,称为 NHibernate,在 ADO.NET Entity Framework 发表之前,NHibernate 是在 .NET Framework 上经常被使用的 ORM 实现。Hibernate的架构有三个主要部分组成:1连接管理:Hibernate的连接管理服务提供的数据库连接的有效

45、管理。数据库连接是与数据库进行交互,因为它需要大量资源的开放和关闭数据库连接的最昂贵的部分。 2交易管理:事务管理服务提供给用户能够同时执行多个数据库报表。3对象关系映射:对象关系映射是从对象映射模型的数据表示为关系数据模型的技术。这部分是用来休眠选择,插入,更新和删除记录窗体的基础表。当我们传递一个对象到Session.save()的方法时,Hibernate读取该对象的变量的状态,并执行必要的查询。 Hibernate是很好的工具尽可能对象关系映射的关注,但在连接管理和事务管理方面,它在性能和能力缺乏。所以通常冬眠与其他正在使用的连接管理和事务管理工具。例如Apache的二溴氯丙烷是用于与

46、Hibernate的连接池。Hibernate提供了使用中的灵活性。它被称为“轻型”的体系结构时,我们只使用对象关系映射的组成部分。而在“全面解决”的体系结构的所有三个组件对象关系映射,连接管理和事务管理)的使用。 Hibernate的体系结构外文原文(复印件)History Duke, the Java mascotJames Gosling, Mike Sheridan, and Patrick Naughton initiated the Java language project in June 1991. Java was originally designed for intera

47、ctive television, but it was too advanced for the digital cable television industry at the time. The language was initially called Oak after an oak tree that stood outside Goslings office; it went by the name Green later, and was later renamed Java, from a list of random words.Gosling aimed to imple

48、ment a virtual machine and a language that had a familiar C/C+ style of notation.Sun Microsystems released the first public implementation as Java 1.0 in 1995. It promised Write Once, Run Anywhere (WORA), providing no-cost run-times on popular platforms. Fairly secure and featuring configurable secu

49、rity, it allowed network- and file-access restrictions. Major web browsers soon incorporated the ability to run Java applets within web pages, and Java quickly became popular. With the advent of Java 2 (released initially as J2SE 1.2 in December 19981999), new versions had multiple configurations bu

50、ilt for different types of platforms. For example, J2EE targeted enterprise applications and the greatly stripped-down version J2ME for mobile applications (Mobile Java). J2SE designated the Standard Edition. In 2006, for marketing purposes, Sun renamed new J2 versions as Java EE, Java ME, and Java

51、SE, respectively.In 1997, Sun Microsystems approached the ISO/IEC JTC1 standards body and later the Ecma International to formalize Java, but it soon withdrew from the process. Java remains a de facto standard, controlled through the Java Community Process. At one time, Sun made most of its Java imp

52、lementations available without charge, despite their proprietary software status. Sun generated revenue from Java through the selling of licenses for specialized products such as the Java Enterprise System. Sun distinguishes between its Software Development Kit (SDK) and Runtime Environment (JRE) (a

53、 subset of the SDK); the primary distinction involves the JREs lack of the compiler, utility programs, and header files.On November 13, 2006, Sun released much of Java as open source software under the terms of the GNU General Public License (GPL). On May 8, 2007, Sun finished the process, making al

54、l of Javas core code available under free software/open-source distribution terms, aside from a small portion of code to which Sun did not hold the copyright.Suns vice-president Rich Green has said that Suns ideal role with regards to Java is as an evangelist.Following Oracle Corporations acquisitio

55、n of Sun Microsystems in 20092010, Oracle has described itself as the steward of Java technology with a relentless commitment to fostering a community of participation and transparency.PrinciplesThere were five primary goals in the creation of the Java language:1.It should be simple, object oriented

56、, and familiar、2.It should be robust and secure.3.It should be architecture neutral and portable、4.It should execute with high performance、5.It should be interpreted, threaded, and dynamic.Java PlatformMain articles: Java (software platform) and Java Virtual MachineOne characteristic of Java is port

57、ability, which means that computer programs written in the Java language must run similarly on any supported hardware/operating-system platform. This is achieved by compiling the Java language code to an intermediate representation called Java bytecode, instead of directly to platform-specific machi

58、ne code. Java bytecode instructions are analogous to machine code, but are intended to be interpreted by a virtual machine (VM) written specifically for the host hardware. End-users commonly use a Java Runtime Environment (JRE) installed on their own machine for standalone Java applications, or in a

59、 Web browser for Java applets. Standardized libraries provide a generic way to access host-specific features such as graphics, threading, and networking.A major benefit of using bytecode is porting. However, the overhead of interpretation means that interpreted programs almost always run more slowly

60、 than programs compiled to native executables would. Just-in-Time compilers were introduced from an early stage that compile bytecodes to machine code during runtime.ImplementationsSun Microsystems officially licenses the Java Standard Edition platform for Linux, Mac OS X, and Solaris. Although in t

61、he past Sun has licensed Java to Microsoft, the license has expired and has not been renewed. Through a network of third-party vendors and licensees, alternative Java environments are available for these and other platforms.Suns trademark license for usage of the Java brand insists that all implemen

62、tations be compatible. This resulted in a legal dispute with Microsoft after Sun claimed that the Microsoft implementation did not support RMI or JNI and had added platform-specific features of their own. Sun sued in 1997, and in 2001 won a settlement of US$20 million, as well as a court order enfor

63、cing the terms of the license from Sun. As a result, Microsoft no longer ships Java with Windows, and in recent versions of Windows, Internet Explorer cannot support Java applets without a third-party plugin. Sun, and others, have made available free Java run-time systems for those and other version

64、s of Windows.Platform-independent Java is essential to the Java EE strategy, and an even more rigorous validation is required to certify an implementation. This environment enables portable server-side applications, such as Web services, Java Servlets, and Enterprise JavaBeans, as well as with embed

65、ded systems based on OSGi, using Embedded Java environments. Through the new GlassFish project, Sun is working to create a fully functional, unified open source implementation of the Java EE technologies.Sun also distributes a superset of the JRE called the Java Development Kit (commonly known as the JDK), which includes d

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!