运动爱好者社区网站设计 英中文翻译封面_第1页
运动爱好者社区网站设计 英中文翻译封面_第2页
运动爱好者社区网站设计 英中文翻译封面_第3页
运动爱好者社区网站设计 英中文翻译封面_第4页
运动爱好者社区网站设计 英中文翻译封面_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

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

文档简介

理工大学英中文翻译材料英文题目英文题目英文题目英文题目THECOMMUNITYOFSPORTSENTHUSIASTS中文题目中文题目中文题目中文题目运动爱好者社区运动爱好者社区运动爱好者社区运动爱好者社区学院计算机科学与技术专业计算机科学与技术学生姓名指导教师二一年六月JAVAJAVA是一种简单的,面向对象的,分布式的,解释型的,健壮安全的,结构中立的,可移植的,性能优异、多线程的动态语言。JAVA语言的主要好处是,JAVA应用程序可以跨硬件平台和操作系统进行移植这是因为每个平台上安装的JVM都可以理解同样的字节码。JAVA语言和平台的可伸缩性非常强。在低端,JAVA语言是第一批支持企业开放标准的技术之一,支持使用XML和WEB服务跨业务线共享信息和应用程序。JAVA平台有三个版本,这使软件开发人员、服务提供商和设备生产商可以针对特定的市场进行开发1JAVASE以前称为J2SE。它允许开发和部署在桌面、服务器、嵌入式环境和实时环境中使用的JAVA应用程序。JAVASE包含了支持JAVAWEB服务开发的类,并为JAVAPLATFORM,ENTERPRISEEDITION(JAVAEE)提供基础。大多数JAVA开发人员使用JAVASE5,也称为JAVA50或“TIGER”。2JAVAEE以前称为J2EE。企业版本帮助开发和部署可移植、健壮、可伸缩且安全的服务器端JAVA应用程序。JAVAEE是在JAVASE的基础上构建的,它提供WEB服务、组件模型、管理和通信API,可以用来实现企业级的面向服务体系结构和WEB20应用程序。3JAVAME以前称为J2ME。JAVAME为在移动设备和嵌入式设备上运行的应用程序提供一个健壮且灵活的环境。JAVAME包括灵活的用户界面、健壮的安全模型、许多内置的网络协议以及对可以动态下载的连网和离线应用程序的丰富支持。基于JAVAME规范的应用程序只需编写一次,就可以用于许多设备,而且可以利用每个设备的本机功能。JAVA语言是简单的。JAVA语言的语法与C语言和C语言很接近,JAVA丢弃了C中很少使用、难理解的的特性,如操作符重载、多继承、自动的强制类型转换。JAVA语言不使用指针,并提供了自动的废料收集。JAVA语言是一个面向对象的。JAVA语言提供类、接口和继承等原语,为了简单起见,只支持类之间的单继承,但支持接口之间的多继承,并支持类与接口之间的实现机制(关键字为IMPLEMENTS)。JAVA语言全面支持动态绑定,而C语言只对虚函数使用动态绑定。总之,JAVA语言是一个纯的面向对象程序设计语言。JAVA语言是分布式的。JAVA语言支持INTERNET应用的开发,JAVA的RMI远程方法激活机制也是开发分布式应用的重要手段。JAVA语言是健壮的。JAVA的强类型机制、异常处理、废料的自动收集等是JAVA程序健壮性的重要保证。JAVA语言是安全的。JAVA通常被用在网络环境中,为此,JAVA提供了一个安全机制以防恶意代码的攻击。JAVA语言是可移植的。这种可移植性来源于体系结构中立性。JAVA系统本身也具有很强的可移植性。JAVA语言是多线程的。在JAVA语言中,线程是一种特殊的对象,它必须由THREAD类或其子(孙)类来创建。JAVA语言支持多个线程的同时执行,并提供多线程之间的同步机制(关键字为SYNCHRONIZED)。JAVA语言的优良特性使得JAVA应用具有无比的健壮性和可靠性,这也减少了应用系统的维护费用。JAVA对对象技术的全面支持和JAVA平台内嵌的API能缩短应用系统的开发时间并降低成本。JAVA的编译一次,到处可运行的特性使得它能够提供一个随处可用的开放结构和在多平台之间传递信息的低成本方式。HIBERNATEHIBERNATE是JDBC的轻量级的对象封装。它是一个独立的对象持久层框架,和APPSERVER,和EJB没有什么必然的联系。HIBERNATE可以用在任何JDBC可以使用的场合,例如JAVA应用程序的数据库访问代码,DAO接口的实现类,甚至可以是BMP里面的访问数据库的代码。从这个意义上来说,HIBERNATE和EB不是一个范畴的东西,也不存在非此即彼的关系。HIBERNATE是一个和JDBC密切关联的框架,所以HIBERNATE的兼容性和JDBC驱动,和数据库都有一定的关系,但是和使用它的JAVA程序,和APPSERVER没有任何关系,也不存在兼容性问题。HIBERNATE中提供了两级CACHE,第一级别的缓存是SESSION级别的缓存,它是属于事务范围的缓存。这一级别的缓存由HIBERNATE管理的,一般情况下无需进行干预;第二级别的缓存是SESSIONFACTORY级别的缓存,它是属于进程范围或群集范围的缓存。这一级别的缓存可以进行配置和更改,并且可以动态加载和卸载。HIBERNATE还为查询结果提供了一个查询缓存,它依赖于第二级缓存。当应用程序调用SESSION的SAVE、UPDATE、SAVEORUPDATE、GET或LOAD,以及调用查询接口的LIST、ITERATE或FILTER方法时,如果在SESSION缓存中还不存在相应的对象,HIBERNATE就会把该对象加入到第一级缓存中。当清理缓存时,HIBERNATE会根据缓存中对象的状态变化来同步更新数据库。SESSION为应用程序提供了两个管理缓存的方法EVICTOBJECTOBJ从缓存中清除参数指定的持久化对象。CLEAR清空缓存中所有持久化对象。HIBERNATE的二级缓存策略的一般过程如下1条件查询的时候,总是发出一条SELECTFROMTABLE_NAMEWHERE(选择所有字段)这样的SQL语句查询数据库,一次获得所有的数据对象。2把获得的所有数据对象根据ID放入到第二级缓存中。3当HIBERNATE根据ID访问数据对象的时候,首先从SESSION一级缓存中查;查不到,如果配置了二级缓存,那么从二级缓存中查;查不到,再查询数据库,把结果按照ID放入到缓存。4删除、更新、增加数据的时候,同时更新缓存。HIBERNATE的二级缓存策略,是针对于ID查询的缓存策略,对于条件查询则毫无作用。为此,HIBERNATE提供了针对条件查询的QUERYCACHE。HIBERNATE对象关系映射提供延迟的与非延迟的对象初始化。非延迟加载在读取一个对象的时候会将与这个对象所有相关的其他对象一起读取出来。这有时会导致成百的(如果不是成千的话)SELECT语句在读取对象的时候执行。这个问题有时出现在使用双向关系的时候,经常会导致整个数据库都在初始化的阶段被读出来了。当然,你可以不厌其烦地检查每一个对象与其他对象的关系,并把那些最昂贵的删除,但是到最后,我们可能会因此失去了本想在ORM工具中获得的便利。一级缓存和二级缓存的比较第一级缓存第二级缓存存放数据的形式相互关联的持久化对象对象的散装数据缓存的范围事务范围,每个事务都有单独的第一级缓存进程范围或集群范围,缓存被同一个进程或集群范围内的所有事务共享并发访问策略由于每个事务都拥有单独的第一级缓存,不会出现并发问题,无需提供并发访问策略由于多个事务会同时访问第二级缓存中相同数据,因此必须提供适当的并发访问策略,来保证特定的事务隔离级别数据过期策略没有提供数据过期策略。处于一级缓存中的对象永远不会过期,除非应用程序显式清空缓存或者清除特定的对象必须提供数据过期策略,如基于内存的缓存中的对象的最大数目,允许对象处于缓存中的最长时间,以及允许对象处于缓存中的最长空闲时间物理存储介质内存内存和硬盘。对象的散装数据首先存放在基于内存的缓存中,当内存中对象的数目达到数据过期策略中指定上限时,就会把其余的对象写入基于硬盘的缓存中。缓存的软件实现在HIBERNATE的SESSION的实现中包含了缓存的实现由第三方提供,HIBERNATE仅提供了缓存适配器CACHEPROVIDER。用于把特定的缓存插件集成到HIBERNATE中。启用缓存的方式只要应用程序通过SESSION接口来执行保存、更新、删除、加载和查询数据库数据的操作,HIBERNATE就会启用第一级缓存,把数据库中的数据以对象的形式拷贝到缓存中,对于批量更新和批量删除操作,如果不希望启用第一级缓存,可以绕过HIBERNATEAPI,直接通过JDBCAPI来执行指操作。用户可以在单个类或类的单个集合的粒度上配置第二级缓存。如果类的实例被经常读但很少被修改,就可以考虑使用第二级缓存。只有为某个类或集合配置了第二级缓存,HIBERNATE在运行时才会把它的实例加入到第二级缓存中。用户管理缓存的方式第一级缓存的物理介质为内存,由于内存容量有限,必须通过恰当的检索策略和检索方式来限制加载对象的数目。SESSION的EVIT方法可以显式清空缓存中特定对象,但这种方法不值得推荐。第二级缓存的物理介质可以是内存和硬盘,因此第二级缓存可以存放大量的数据,数据过期策略的MAXELEMENTSINMEMORY属性值可以控制内存中的对象数目。管理第二级缓存主要包括两个方面选择需要使用第二级缓存的持久类,设置合适的并发访问策略选择缓存适配器,设置合适的数据过期策略。一个明显的解决方法是使用HIBERNATE提供的延迟加载机制。这种初始化策略只在一个对象调用它的一对多或多对多关系时才将关系对象读取出来。这个过程对开发者来说是透明的,而且只进行了很少的数据库操作请求,因此会得到比较明显的性能提升。这项技术的一个缺陷是延迟加载技术要求一个HIBERNATE会话要在对象使用的时候一直开着。这会成为通过使用DAO模式将持久层抽象出来时的一个主要问题。为了将持久化机制完全地抽象出来,所有的数据库逻辑,包括打开或关闭会话,都不能在应用层出现。最常见的是,一些实现了简单接口的DAO实现类将数据库逻辑完全封装起来了。一种快速但是笨拙的解决方法是放弃DAO模式,将数据库连接逻辑加到应用层中来。这可能对一些小的应用程序有效,但是在大的系统中,这是一个严重的设计缺陷,妨碍了系统的可扩展性。STRUTS2STRUTS2其实并不是一个陌生的WEB框架,STRUTS2是以WEBWORK的设计思想为核心,吸收了STRUTS1的优点,因此,可以认为STRUTS2是STRUTS1和WEBWORK结合的产物。MVC简介STRUTS2是一个兼容STRUTS1和WEBWORK的MVC框架,既然,提到了MVC框架,就不得不对MVC框架做一个简单介绍,仅限于简单介绍,如果,想了解更多的MVC的知识可以查看相关的文档,或者找一本STRUTS1的书籍,相信上面关于MVC的篇幅不会很少。言归正传,其实,JAVA目前出现的这些框架而言,其最终目的都是为了接触耦合,不论是SPRING、HIBERNATE或MVC框架,目的都是为了接触耦合增加复用。MVC接触的是VIEW和MODEL间的耦合。MVC包含三个基础部分MODEL、VIEW和CONTROLLER,这三个部分以最小的耦合协同工作,以增加程序的可扩展性和可维护性。各个部分的实现技术可以总结如下1)MODELJAVABEAN、EJB的ENTITYBEAN2)VIEWJSP、STRUTS的TAGLIB3)CONTROLLERSTRUTS的ACTIONSERVLET、ACTION概括起来MVC的优点主要有一下方面1)多个视图可以对应一个模型。按MVC设计模式,一个模型对应多个视图,可以减少代码的复制及代码的维护量,一旦模型发生改变,也易于维护2)模型返回的数据与显示逻辑分离。模型数据可以应用任何的显示技术,例如,使用JSP页面、VELOCITY模板或者直接产生EXCEL文档等3)应用被分隔为三层,降低了各层之间的耦合,提供了应用的可扩展性4)控制层的概念也很有效,由于它把不同的模型和不同的视图组合在一起,完成不同的请求。因此,控制层可以说是包含了用户请求权限的概念5)MVC更符合软件工程化管理的精神。不同的层各司其职,每一层的组件具有相同的特征,有利于通过工程化和工具化产生管理程序代码STRUTS2简介STRUTS2看似是从STRUTS1发展而来,但实际上STRUTS2与STRUTS1在框架的设计思想上面还是有很大的区别,STRUTS2是以WEBWORK的设计思想为核心,为什么STRUTS2不沿用STRUTS1的设计思想,毕竟STRUTS1在目前的企业应用中还是有非常大的市场在的,STRUTS1的一些缺点1)支持的表现层技术单一2)与SERVLETAPI严重耦合,这点可以从ACTION的EXECUTE的方法声明里面就可以看的出来3)代码依赖STRUTS1API,有侵入性,这点可以从写ACTION类和FORMBEAN的时候看的出来,ACTION必须实现STRUTS的ACTION类而STRUTS2之所以以WEBWORK的设计思想为其核心,一点就是最近WEBWORK的上升势头,再就是WEBWORK没有STRUTS1上面的那些缺点,更符合MVC的设计思想,也更利于代码的复用。基于以上介绍可以看的出,STRUTS2体系结构与STRUTS1的体系结构有很大的差别,STRUTS1是使用ACTIONSERVLET做为其中心处理器,STRUTS2则使用一个拦截器(FILTERDISPATCHER)做为其中心处理器,这样做的一个好处就是将ACTION类和SERVLETAPI进行了分离。STRUTS2的简单处理流程如下1)浏览器发送请求2)中心处理器根据STRUTSXML文件查找对应的处理请求的ACTION类3)WEBWORK的拦截器链自动对请求应用通用功能,例如WORKFLOW、VALIDATION等功能4)如果STRUTSXML文件中配置METHOD参数,则调用METHOD参数对应的ACTION类中的METHOD方法,否则调用通用的EXECUTE方法来处理用户请求5)将ACTION类中的对应方法返回的结果响应给浏览器STRUTS2与STRUTS1对比1)ACTION类的实现方式STRUTS1的ACTION在实现的时候必须扩展ACTION类或者ACTION的子类,STRUTS2的ACTION类实现的时候可以不用实现任何类和接口,虽然STRUTS2中提供一个ACTIONSUPPORT类,但是,不是必须的。2)STRUTS1的ACTION类是单例模式,必须设计成线程安全的,STRUTS2则为每一个请求产生一个实例3)STRUTS1的ACTION类依赖与SERVLETAPI,从其EXECUTE的方法签名可看出,EXECUTE方法有两个SERVLET的参数HTTPSERVLETREQUEST和HTTPSERVLETRESPONSE,STRUTS2则不依赖于SERVLETAPI4)STRUTS1依赖于SERVLETAPI这些WEB元素,因此对STRUTS1的ACTION进行测试的时候是很困难的,需要借助与其他的测试工具,STRUTS2的ACTION可以象测试其他的一些MODEL层的SERVICE类一样进行测试5)STRUTS1的ACTION与VIEW通过ACTIONFORM或者其子类进行数据传递,虽然也有LAZYVALIDATIONFORM这样的ACTIONFORM的出现,但是,还是不能象其他层面那样通过一个简单的POJO进行数据传递,而STRUTS2将这样的奢望变成了现实6)STRUTS1绑定了JSTL,为页面的编写带来方便,STRUTS2整合了ONGL,也可以使用JSTL,因此,STRUTS2下的表达式语言更加强大STRUTS2与WEBWORK对比STRUTS2实际上就是WEBWORK23,不过,STRUTS2还是与WEBWORK有少许的差别1)STRUTS2不再支持内置IOC容器,改用SPRING的IOC容器2)STRUTS2对于WEBWORK的一些AJAX的特性的标签改用DOJO进行替换SERVLETSERVLET是一种服务器端的JAVA应用程序,具有独立于平台和协议的特性,可以生成动态的WEB页面。它担当客户请求(WEB浏览器或其他HTTP客户程序)与服务器响应(HTTP服务器上的数据库或应用程序)的中间层。SERVLET是位于WEB服务器内部的服务器端的JAVA应用程序,与传统的从命令行启动的JAVA应用程序不同,SERVLET由WEB服务器进行加载,该WEB服务器必须包含支持SERVLET的JAVA虚拟机。HTTPSERVLET使用一个HTML表格来发送和接收数据。要创建一个HTTPSERVLET,需要扩展HTTPSERVLET类,该类是用专门的方法来处理HTML表格的GENERICSERVLET的一个子类。HTML表单是由和标记定义的。表单中典型地包含输入字段如文本输入字段、复选框、单选按钮和选择列表和用于提交数据的按钮。当提交信息时,它们还指定服务器应执行哪一个SERVLET或其它的程序。HTTPSERVLET类包含INIT、DESTROY、SERVICE等方法。其中INIT和DESTROY方法是继承的。INIT方法在SERVLET的生命期中,仅执行一次INIT方法。它是在服务器装入SERVLET时执行的。可以配置服务器,以在启动服务器或客户机首次访问SERVLET时装入SERVLET。无论有多少客户机访问SERVLET,都不会重复执行INIT。缺省的INIT方法通常是符合要求的,但也可以用定制INIT方法来覆盖它,典型的是管理服务器端资源。例如,可能编写一个定制INIT来只用于一次装入GIF图像,改进SERVLET返回GIF图像和含有多个客户机请求的性能。另一个示例是初始化数据库连接。缺省的INIT方法设置了SERVLET的初始化参数,并用它的SERVLETCONFIG对象参数来启动配置,因此所有覆盖INIT方法的SERVLET应调用SUPERINIT以确保仍然执行这些任务。在调用SERVICE方法之前,应确保已完成了INIT方法。SERVICE方法SERVICE方法是SERVLET的核心。每当一个客户请求一个HTTPSERVLET对象,该对象的SERVICE方法就要被调用,而且传递给这个方法一个“请求“SERVLETREQUEST对象和一个“响应“SERVLETRESPONSE对象作为参数。在HTTPSERVLET中已存在SERVICE方法。缺省的服务功能是调用与HTTP请求的方法相应的DO功能。例如,如果HTTP请求方法为GET,则缺省情况下就调用DOGET。SERVLET应该为SERVLET支持的HTTP方法覆盖DO功能。因为HTTPSERVLETSERVICE方法会检查请求方法是否调用了适当的处理方法,不必要覆盖SERVICE方法。只需覆盖相应的DO方法就可以了。SERVLET的响应可以是下列几种类型一个输出流,浏览器根据它的内容类型如TEXT/HTML进行解释;一个HTTP错误响应,重定向到另一个URL、SERVLET、JSP。DOGET方法当一个客户通过HTML表单发出一个HTTPGET请求或直接请求一个URL时,DOGET方法被调用。与GET请求相关的参数添加到URL的后面,并与这个请求一起发送。当不会修改服务器端的数据时,应该使用DOGET方法。DOPOST方法当一个客户通过HTML表单发出一个HTTPPOST请求时,DOPOST方法被调用。与POST请求相关的参数作为一个单独的HTTP请求从浏览器发送到服务器。当需要修改服务器端的数据时,应该使用DOPOST方法。DESTROY方法DESTROY方法仅执行一次,即在服务器停止且卸装SERVLET时执行该方法。典型的,将SERVLET作为服务器进程的一部分来关闭。缺省的DESTROY方法通常是符合要求的,但也可以覆盖它,典型的是管理服务器端资源。例如,如果SERVLET在运行时会累计统计数据,则可以编写一个DESTROY方法,该方法用于在未装入SERVLET时将统计数字保存在文件中。另一个示例是关闭数据库连接。当服务器卸装SERVLET时,将在所有SERVICE方法调用完成后,或在指定的时间间隔过后调用DESTROY方法。一个SERVLET在运行SERVICE方法时可能会产生其它的线程,因此请确认在调用DESTROY方法时,这些线程已终止或完成。GETSERVLETCONFIG方法GETSERVLETCONFIG方法返回一个SERVLETCONFIG对象,该对象用来返回初始化参数和SERVLETCONTEXT。SERVLETCONTEXT接口提供有关SERVLET的环境信息。GETSERVLETINFO方法GETSERVLETINFO方法是一个可选的方法,它提供有关SERVLET的信息,如作者、版本、版权。当服务器调用SEVLET的SERVICE、DOGET和DOPOST这三个方法时,均需要“请求“和“响应“对象作为参数。“请求“对象提供有关请求的信息,而“响应“对象提供了一个将响应信息返回给浏览器的一个通信途径。JAVAXSERVLET软件包中的相关类为SERVLETRESPONSE和SERVLETREQUEST,而JAVAXSERVLETHTTP软件包中的相关类为HTTPSERVLETREQUEST和HTTPSERVLETRESPONSE。SERVLET通过这些对象与服务器通信并最终与客户机通信。SERVLET能通过调用“请求“对象的方法获知客户机环境,服务器环境的信息和所有由客户机提供的信息。SERVLET可以调用“响应“对象的方法发送响应,该响应是准备发回客户机的JSPJAVASERVERPAGESJSP技术提供了一种简单快速的方法来创建显示动态生成内容的WEB页面。由业界处于领先地位的SUN公司制定了相关的JSP技术规范,该规范定义了如何在服务器和JSP页面间进行交互,还描述了页面的格式和语法。JSP页面使用XML标签和SCRIPTLETS(一种使用JAVA语言编写的脚本代码),封装了生成页面内容的逻辑。它将各种格式的标签(HTML或者XML)直接传递回响应页面。通过这种方式,JSP页面实现了页面逻辑与其设计和显示的分离。JSP技术是JAVA系列技术的一部分。JSP页面被编译成SERVLET,并可能调用JAVABEANS组件BEANS或ENTERPRISEJAVABEANS组件(企业BEANS),以便在服务器端处理。因此,JSP技术在构建可升级的基于WEB的应用程序时扮演了重要角色。JSP页面并不局限于任何特定的平台或WEB服务器上。JSP规范在业界有着广泛的适应性。JSP技术是行业协作的结果,它的设计是开放的,符合行业标准的,并支持绝大多数的服务器、浏览器和相关工具。由于使用可重用的组件和标签取代了对页面本身脚本语言的严重依赖,JSP技术大大加快了开发的速度。所有JSP的实现均支持以JAVA编程语言为基础的脚本语言,它有与生俱来的可适应性,支持复杂的操作。JQUERYJQUERY是继PROTOTYPE之后又一个优秀的JAVASCRPT框架。其宗旨是写更少的代码,做更多的事情。它是轻量级的JS库压缩后只有21K,这是其它的JS库所不及的,它兼容CSS3,还兼容各种浏览器(IE60,FF15,SAFARI20,OPERA90)。JQUERY是一个快速的,简洁的JAVASCRIPT库,使用户能更方便地处理HTMLDOCUMENTS、EVENTS、实现动画效果,并且方便地为网站提供AJAX交互。JQUERY还有一个比较大的优势是,它的文档说明很全,而且各种应用也说得很详细,同时还有许多成熟的插件可供选择。JQUERY能够使用户的HTML页保持代码和HTML内容分离,也就是说,不用再在HTML里面插入一堆JS来调用命令了,只需定义ID即可。JQUERY是继PROTOTYPE之后又一个优秀的JAVASCRPT框架。对PROTOTYPE我使用不多,简单了解过。但使用上JQUERY之后,马上被她的优雅吸引住了。有人使用这样的一比喻来比较PROTOTYPE和JQUERYPROTOTYPE就像JAVA,而JQUERY就像RUBY实际上我比较喜欢JAVA(少接触RUBY罢了)但是JQUERY的简单的实用的确有相当大的吸引力啊在项目里我把JQUERY作为自己唯一的框架类包。使用其间也有一点点心得,其实这些心得,在JQUERY的文档上面也可能有讲,不过还是记下来,以备忘罢。JAVAJAVAISASIMPLE,OBJECTORIENTED,DISTRIBUTED,INTERPRETED,ROBUSTSECURITY,STRUCTURENEUTRAL,PORTABLE,HIGHPERFORMANCE,MULTITHREADEDDYNAMICLANGUAGETHEMAINADVANTAGEOFJAVALANGUAGE,JAVAAPPLICATIONSACROSSHARDWAREPLATFORMSANDOPERATINGSYSTEMSFORTRANSPLANTTHISISBECAUSETHEJVMISINSTALLEDONEACHPLATFORMCANUNDERSTANDTHESAMEBYTECODEJAVALANGUAGEANDPLATFORMSCALABILITYISVERYSTRONGATTHELOWEND,JAVALANGUAGEISTHEFIRSTOPENSTANDARDSTECHNOLOGYSUPPORTENTERPRISEONE,SUPPORTTHEUSEOFXMLANDWEBSERVICECANNOTSTRIDEBUSINESSLINESTOSHAREINFORMATIONANDAPPLICATIONSCHENGXUTHEREARETHREEVERSIONSOFJAVAPLATFORM,WHICHMAKESSOFTWAREDEVELOPERS,SERVICEPROVIDERSANDEQUIPMENTMANUFACTURERSCANTARGETSPECIFICMARKETDEVELOPMENT1JAVASEFORMERLYKNOWNASJ2SEITALLOWSDEVELOPMENTANDDEPLOYMENTOFTHEDESKTOP,SERVER,EMBEDDEDANDREALTIMEENVIRONMENTUSINGTHEJAVAENVIRONMENTAPPLICATIONSJAVASEINCLUDESSUPPORTFORJAVAWEBSERVICESDEVELOPMENTCLASSES,ANDFORTHEJAVAPLATFORM,ENTERPRISEEDITIONJAVAEETOPROVIDEABASISMOSTJAVADEVELOPERSUSEJAVASE5,ALSOKNOWNASJAVA50OR“TIGER“2JAVAEEFORMERLYKNOWNASJ2EEENTERPRISEEDITIONTOHELPDEVELOPANDDEPLOYPORTABLE,ROBUST,SCALABLEANDSECURESERVERSIDEJAVAAPPLICATIONSJAVASEJAVAEEISBUILTONTHEFOUNDATION,WHICHPROVIDESWEBSERVICES,COMPONENTMODEL,MANAGEMENTANDCOMMUNICATIONAPI,CANBEUSEDTOACHIEVEENTERPRISECLASSSERVICEORIENTEDARCHITECTUREANDWEB20APPLICATIONS3JAVAMEFORMERLYKNOWNASJ2MEJAVAMEDEVICESINMOBILEANDEMBEDDEDAPPLICATIONSRUNNINGONAROBUSTANDFLEXIBLEENVIRONMENTJAVAMEINCLUDESFLEXIBLEUSERINTERFACES,ROBUSTSECURITYMODEL,ANDMANYBUILTINNETWORKPROTOCOLSANDNETWORKINGTHATCANBEDYNAMICALLYDOWNLOADEDANDEXTENSIVESUPPORTFOROFFLINEAPPLICATIONSJAVAMEBASEDAPPLICATIONSPECIFICATIONONLYWRITEONCEANDCANBEUSEDINMANYDEVICESANDCANUSETHENATIVEFEATURESOFEACHDEVICEJAVALANGUAGEISSIMPLEJAVALANGUAGESYNTAXANDTHECLANGUAGEANDCLANGUAGEISVERYCLOSE,JAVADISCARDEDTHEC,RARELYUSED,HARDTOUNDERSTANDTHECHARACTERISTICS,SUCHASOPERATOROVERLOADING,MULTIPLEINHERITANCE,THEMANDATORYAUTOMATICTYPECONVERSIONJAVALANGUAGEDOESNOTUSEPOINTERS,ANDPROVIDESAUTOMATEDWASTECOLLECTIONJAVAISANOBJECTORIENTEDLANGUAGEJAVALANGUAGEPROVIDESCLASSES,INTERFACESANDINHERITANCEOFTHEORIGINALLANGUAGE,FORSIMPLICITY,ONLYSUPPORTSSINGLEINHERITANCEBETWEENCLASSES,BUTSUPPORTMULTIPLEINHERITANCEBETWEENINTERFACESANDSUPPORTCLASSESANDINTERFACESTOACHIEVEBETWEENTHEMECHANISMKEYWORDIMPLEMENTSJAVALANGUAGEFULLYSUPPORTSDYNAMICBINDING,ANDCLANGUAGEUSEDONLYFORDYNAMICBINDINGOFVIRTUALFUNCTIONSINSHORT,JAVALANGUAGEISAPUREOBJECTORIENTEDPROGRAMMINGLANGUAGEJAVALANGUAGEISDISTRIBUTEDJAVALANGUAGESUPPORTFORINTERNETAPPLICATIONDEVELOPMENT,JAVASRMIREMOTEMETHODACTIVATIONMECHANISMISALSOANIMPORTANTMEANSOFDEVELOPINGDISTRIBUTEDAPPLICATIONSJAVALANGUAGEISROBUSTJAVASSTRONGTYPESYSTEM,EXCEPTIONHANDLING,AUTOMATEDWASTECOLLECTIONISANIMPORTANTGUARANTEEROBUSTJAVAPROGRAMSJAVALANGUAGEISSAFEJAVAISOFTENUSEDINNETWORKENVIRONMENT,THIS,JAVAPROVIDESASECURITYMECHANISMTOPREVENTMALICIOUSCODEATTACKSJAVALANGUAGEISPORTABLETHISPORTABILITYCOMESFROMTHEARCHITECTURENEUTRALITYJAVASYSTEMITSELFISHIGHLYPORTABLEJAVALANGUAGEISMULTITHREADEDINTHEJAVALANGUAGE,THETHREADISASPECIALOBJECT,ITMUSTTHREADCLASSORTHESONSUNCLASSTOCREATEJAVALANGUAGESUPPORTSIMULTANEOUSEXECUTIONOFMULTIPLETHREADS,ANDPROVIDESYNCHRONIZATIONMECHANISMSBETWEENTHREADSKEYWORDSYNCHRONIZEDJAVALANGUAGEFEATURESMAKEJAVAANEXCELLENTAPPLICATIONOFUNPARALLELEDROBUSTNESSANDRELIABILITY,WHICHALSOREDUCEDAPPLICATIONMAINTENANCECOSTSJAVAONTHEFULLSUPPORTOFOBJECTTECHNOLOGYANDJAVAPLATFORMAPIEMBEDDEDAPPLICATIONSTOREDUCEDEVELOPMENTTIMEANDREDUCECOSTSJAVASCOMPILEONCE,RUNEVERYWHEREFEATURECANMAKEITANYWHEREAVAILABLETOPROVIDEANOPENARCHITECTUREANDMULTIPLATFORM,LOWCOSTWAYOFTRANSMITTINGINFORMATIONBETWEENHIBERNATEHIBERNATEISALIGHTWEIGHTJDBCOBJECTPACKAGEITISANINDEPENDENTOBJECTPERSISTENCEFRAMEWORK,ANDTHEAPPSERVER,ANDEJBISNONECESSARYLINKHIBERNATECANUSEJDBCCANBEUSEDINANYOCCASION,SUCHASJAVAAPPLICATION,DATABASEACCESSCODE,DAOINTERFACEIMPLEMENTATIONCLASS,OREVENACCESSTHEDATABASEINSIDEABMPCODEINTHISSENSE,HIBERNATE,ANDEBISNOTACATEGORYOFTHINGSTHATDIDNOTEXISTEITHERORRELATIONSHIPHIBERNATEANDJDBCISACLOSELYRELATEDFRAMEWORK,THEHIBERNATEANDJDBCDRIVERCOMPATIBILITY,ANDDATABASESHAVESOMERELATIONSHIP,BUTTHEJAVAPROGRAMANDUSEIT,ANDTHEAPPSERVERDOESNOTHAVEANYRELATIONSHIP,THEREWASNOCOMPATIBILITYISSUESHIBERNATEPROVIDESTWOCACHE,FIRSTLEVELCACHEISASESSIONLEVELCACHE,WHICHCACHEBELONGSTOTHESCOPEOFSERVICESTHISLEVELOFCACHEBYTHEHIBERNATEMANAGEDWITHOUTTHENEEDFORINTERVENTIONUNDERNORMALCIRCUMSTANCESSECONDLEVELCACHEISSESSIONFACTORYLEVELCACHE,ITBELONGSTOTHEPROCESSOFRANGEORSCOPEOFTHECACHECLUSTERTHISLEVELOFCACHECANBECONFIGUREDANDCHANGED,ANDCANBEDYNAMICALLYLOADEDANDUNLOADEDHIBERNATEQUERYRESULTSALSOPROVIDEAQUERYCACHE,ITDEPENDSONTHESECONDLEVELCACHEWHENANAPPLICATIONCALLEDSESSIONSSAVE,UPDATE,SAVEORUPDATE,GETORLOAD,ANDTHEQUERYINTERFACECALLLIST,ITERATEORFILTERMETHOD,IFTHESESSIONCACHEDOESNOTEXISTACORRESPONDINGOBJECT,HIBERNATEWILLPUTTHEOBJECTTOTHEFIRSTLEVELCACHEWHENCLEANINGTHECACHE,HIBERNATEOBJECTSACCORDINGTOTHESTATEOFTHECACHECHANGESTOSYNCHRONIZEUPDATETHEDATABASESESSIONFORTHEAPPLICATIONPROVIDESTWOMETHODSOFMANAGINGTHECACHEEVICTOBJECTOBJREMOVEDFROMTHECACHEPARAMETERSOFTHESPECIFIEDPERSISTENTOBJECTCLEAREMPTYTHECACHEOFALLPERSISTENTOBJECTSHIBERNATESECONDLEVELCACHESTRATEGYGENERALPROCESSISASFOLLOWS1THECONDITIONWHENAQUERYISALWAYSISSUEDASELECTFROMTABLE_NAMEWHERESELECTALLFIELDSSUCHASSQLSTATEMENTTOQUERYTHEDATABASE,ANACCESSTOALLOFTHEDATAOBJECT2ALLTHEDATAOBJECTSTOBEPLACEDUNDERTHEIDTOTHESECONDLEVELCACHE3WHENTHEHIBERNATEOBJECTBASEDIDTOACCESSTHEDATA,THEFIRSTCHECKFROMTHESESSIONACACHEFINDINGOUT,IFTHECONFIGURATIONOFTHESECONDARYCACHE,THENTHESECONDARYCACHEFROMTHEINVESTIGATIONFINDINGOUT,ANDTHENQUERYTHEDATABASE,THERESULTSINACCORDANCEWITHTHEIDINTOTHECACHE4REMOVE,UPDATEANDINCREASETHETIMEDATA,WHILEUPDATINGTHECACHEHIBERNATESECONDLEVELCACHESTRATEGYISFORTHEIDQUERYCACHEPOLICY,THEREISNOROLEFORTHECONDITIONSOFINQUIRYTOTHISEND,HIBERNATEPROVIDESACHECKAGAINSTTHECONDITIONSOFTHEQUERYCACHEHIBERNATEOBJECTRELATIONALMAPPINGFORTHEDELAYANDNONDELAYOBJECTINITIALIZATIONNONLAZYWHENREADINGANOBJECTANDTHEOBJECTWILLBEALLREADOUTTOGETHERWITHOTHEROBJECTSTHISSOMETIMESRESULTSINHUNDREDSIFNOTTHOUSANDSOFWORDSSELECTSTATEMENTWHENREADINGTHEOBJECTIMPLEMENTATIONTHISPROBLEMSOMETIMESOCCURSWHENUSINGTHETWOWAYRELATIONSHIP,OFTENLEADINGTOTHEDATABASESTOBEREADDURINGTHEINITIALIZATIONPHASEOUTOFCOURSE,YOUCANTAKETHETROUBLETOEXAMINEEACHOBJECTANDOTHEROBJECTSOFGUANXI,ANDTOTHEMOSTEXPENSIVEOFTHESHANCHU,BUTINTHELAST,WEMAYTHEREFORELOSELEORMTOOLTHISXIANGZAIOBTAINEDBIANLIACACHEANDSECONDARYCACHEOFCOMPARISONTHEFIRSTLEVELCACHESECONDLEVELCACHEDATASTOREDINTHEFORMOFINTERRELATEDPERSISTENTOBJECTSTHEOBJECTOFBULKDATACACHERANGEOFTHESCOPEOFSERVICES,EACHTRANSACTIONHASASEPARATEFIRSTLEVELCACHEPROCESSRANGEORSCOPEOFTHECLUSTER,THECACHEISTHESAMEPROCESSORCLUSTERTOSHAREONALLMATTERSWITHINTHECONCURRENTACCESSPOLICIESBECAUSEEACHTRANSACTIONHASASEPARATEFIRSTLEVELCACHE,CONCURRENCYPROBLEMDOESNOTOCCURWITHOUTTHENEEDTOPROVIDECONCURRENTACCESSPOLICYWILLBEANUMBEROFMATTERSSIMULTANEOUSACCESSTOTHESAMESECONDLEVELCACHEDATA,ITISNECESSARYTOPROVIDEAPPROPRIATECONCURRENTACCESSPOLICIES,TOENSURETHATAPARTICULARTRANSACTIONISOLATIONLEVELDATAEXPIRATIONPOLICIESDIDNOTPROVIDEDATAEXPIRATIONPOLICIESOBJECTINACACHEWILLNEVEREXPIRE,UNLESSTHEAPPLICATIONEXPLICITLYCLEARTHECACHEORCLEARASPECIFICOBJECTMUSTPROVIDEDATAEXPIRATIONPOLICIES,SUCHASMEMORYCACHEBASEDONTHEMAXIMUMNUMBEROFOBJECTS,ALLOWINGOBJECTSINTHECACHEOFTHEMOSTALONGTIME,ANDALLOWINGTHEOBJECTINTHECACHETHELONGESTIDLETIMEOFPHYSICALMEMORYANDHARDDISKMEMORYSTORAGEMEDIUMFIRSTOFALLBULKDATAOBJECTSSTOREDINTHEMEMORYBASEDCACHE,WHENTHENUMBEROFOBJECTSINMEMORYTODATAEXPIRATIONPOLICYSPECIFIEDLIMIT,THEREMAININGOBJECTSWILLBEWRITTENONTHEHARDDISKCACHECACHINGSOFTWAREIMPLEMENTATIONOFTHEHIBERNATESESSIONISINCLUDEDINTHEREALIZATIONOFTHECACHEPROVIDEDBYTHIRDPARTIES,HIBERNATEPROVIDESONLYACACHEADAPTERCACHEPROVIDERUSEDTOPLUGINTOAPARTICULARCACHEINHIBERNATEWAYCACHEENABLEDAPPLICATIONSBYASLONGASTHESESSIONINTERFACEIMPLEMENTATIONSAVE,UPDATE,DELETE,DATALOADINGANDQUERYTHEDATABASEOPERATIONS,HIBERNATEWILLENABLEFIRSTLEVELCACHE,THEDATAINTHEDATABASEINTHEFORMOFANOBJECTCOPIEDTOTHECACHEFORBATCHUPDATESANDBU

温馨提示

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

评论

0/150

提交评论