技术培训02JAVA开发体系简介

上传人:ra****d 文档编号:241399254 上传时间:2024-06-23 格式:PPTX 页数:58 大小:1.88MB
返回 下载 相关 举报
技术培训02JAVA开发体系简介_第1页
第1页 / 共58页
技术培训02JAVA开发体系简介_第2页
第2页 / 共58页
技术培训02JAVA开发体系简介_第3页
第3页 / 共58页
点击查看更多>>
资源描述
开放移动互联网平台开放移动互联网平台OMPOPEN MOBILE-INTERNET PLATFORM软件开发技术培训软件开发技术培训第二课:第二课:JavaJava开发体系介绍开发体系介绍网管中心网管中心 业务支撑室业务支撑室20212021年年4 4月月内容Java语言简介1JavaEE体系结构2客户层技术3Web层技术4业务层技术5持久层技术6应用效劳器介绍7SSH开源框架8其它9Java是什么是什么JavaJava是一种可以撰写跨平台应用软件的面向对象的程序设计是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由语言,是由Sun MicrosystemsSun Microsystems公司于公司于19951995年年5 5月推出的月推出的JavaJava程序设计语言和程序设计语言和JavaJava平台即平台即JavaSE,JavaEE,JavaMEJavaSE,JavaEE,JavaME的的总称。总称。Java Java 技术具有卓越的通用性、高效性、平台移植性技术具有卓越的通用性、高效性、平台移植性和平安性,广泛应用于个人和平安性,广泛应用于个人PCPC、数据中心、游戏控制台、科、数据中心、游戏控制台、科学超级计算机、移动学超级计算机、移动 和互联网,同时拥有全球最大的开和互联网,同时拥有全球最大的开发者专业社群。在全球云计算和移动互联网的产业环境下,发者专业社群。在全球云计算和移动互联网的产业环境下,JavaJava更具备了显著优势和广阔前景。更具备了显著优势和广阔前景。1995年5月23日,Java语言诞生1996年1月,第一个JDK-JDK1.0诞生1998年12月8日,JAVA2企业平台J2EE发布1999年6月,SUN公司发布Java的三个版本:标准版J2SE、企业版J2EE和微型版J2ME2005年6月,Java的各种版本已经更名,J2EE更名为Java EE,J2SE更名为Java SE,J2ME更名为Java ME2021年04月20日,甲骨文74亿美元收购Sun。取得java的版权。2021年7月,甲骨文公司发布java7的正式版。Java平台分类平台分类Java语言分为三个平台:Java SE:Java Platform,Standard Edition,适用于桌面系统的Java 2平台标准版Java EE:Java Platform,Enterprise Edition,适用于创立效劳器应用程序和效劳的Java 2平台企业版Java ME:Java Platform,Micro Edition,适用于小型设备和智能卡的Java 2平台Micro版Java语言主要特性语言主要特性Java 编程语言的风格十分接近C、C+语言。Java是一个纯的面向对象的程序设计语言,它继承了 C+语言面向对象技术的核心,Java舍弃了C+语言中容易引起错误的指针以引用取代、运算符重载operator overloading、多重继承以接口取代等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。Java 不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进制字节码bytecode,然后依赖各种不同平台上的虚拟机来解释执行字节码,从而实现了“一次编译、到处执行的跨平台特性。不过,每次的解释执行需要消耗一定的时间,这同时也在一定程度上降低了Java 程序的运行效率。熟悉而简单熟悉而简单局部解释执行局部解释执行Java的设计目标是要支持网络应用程序。一般而言,网络是由许多不同的平台系统构成,包括各种CPU与操作系统结构。为了让Java应用程序能够在网络上任何地方执行,其编译器将会生成一种具备结构中立性的目标文件格式bytecode。编译后的程序码可以在提供Java运行系统的多种不同处理器上面执行。平台独立性平台独立性Java虚虚拟拟机机 JVM Java语言的一个非常重要的特点就是与平台的无关性。而使用Java虚拟机是实现这一特点的关键。一般的高级语言如果要在不同的平台上运行,需要编译成不同的目标代码。而引入Java语言虚拟机后,Java语言在不同平台上运行时不需要重新编译。JVM是Java Virtual MachineJava虚拟机的缩写,是一种可以执行Java字节码(bytecode)的虚拟机。JVM屏蔽了与具体操作系统平台相关的信息,使Java程序只需生成在JVM上运行的目标代码字节码,就可以在多种平台上不加修改地运行。JVM在执行字节码时,实际上最终还是把字节码解释成具体平台上的机器指令执行。常见常见JavaJava虚拟机:虚拟机:sun Hotspot VM-Oraclesun Hotspot VM-Oraclesun jresun jreBEA JRockit -OracleBEA JRockit -OracleIBM J9 VM -IBMIBM J9 VM -IBMJava运行运行环环境境 JRE(JRE)(JRE)JREJREJava Runtime EnvironmentJava Runtime Environment,JavaJava运行环境,运行运行环境,运行JAVAJAVA程序所必须的环程序所必须的环境的集合,包含境的集合,包含JVMJVM标准实现及标准实现及JavaJava核心类库。即核心类库。即 JRE=JVM+Lib(Java API)JRE=JVM+Lib(Java API)JavaJava程序和程序和JREJRE之间的关系如以下图所示:之间的关系如以下图所示:JavaPlug-inJavaPlug-in:是一种特殊的JRE,被安装于浏览器中,用于支持在浏览器中运行Java Applet程序。JVM垃圾回收机制垃圾回收机制 Garbage Collection)JVM启动时可以通过参数:Xms指定JVM使用的最小内存;-Xmx指定JVM允许使用的最大内存。这样,Java程序启动时就占用-Xms大小的内存,并且随着程序运行所占用内存不断上涨,当内存使用到达-Xmx指定最大内存的一定比例比例也可配置的时候就触发自动垃圾回收机制,由JVM检测失效的对象并将内存释放。这样不断重复就形成了类似波浪状的内存占用示意图如以下图所示,当由于创立对象过多造成JVM使用内存到达-Xmx参数指定的上限时,JVM会抛出内存错误异常。因此,要合理地设定Java运行的内存大小和GC策略。Java运行机制运行机制Java程序的运行机制如以下图:A.javaB.javaJava编译器(javac)A.classB.class1.程序的源文件2.程序的class文件编译时环境A.classB.classObject.classString.class程序的class文件:*.jar包运行时环境Java虚拟机通过本地或网络传递class文件使用Java解释器解释执行class文件编译源文件JRE类库操作系统再见再见HelloWorld编辑程序代码编辑程序代码HelloWorld.javajavac生成出错信息生成出错信息Yes编译程序代码编译程序代码javac HelloWorld.javaHelloWorld.class解释执行字节码解释执行字节码java HelloWorld有有编编译译错错误吗?误吗?Noclass HelloWorldApp /程序入口函数 public static void main(String args)/程序执行逻辑 System.out.println(Hello World!);HelloWorldApp.java:HelloWorldApp.java:一个简单的Java程序的编辑、编译和运行过程示意如下:Java应用分类应用分类Java应用客户端应用程序GUI应用程序命令行程序嵌入式应用程序效劳端应用程序web效劳程序Java Applet小应用程序即图形用户界面程序,可以实现复杂的用户交互功能和丰富的展现方式无需界面,只需在命令行下运行,运行结果只在后台发生变化嵌入到各种终端设备中运行的Java应用程序通过web的方式提供用户交互界面,这些程序运行在效劳器端,通过HTTP/WebService等协议方式接收客户端请求并返回相应的数据一种嵌入在HTML网页中的Java GUI应用程序,Applet的类在效劳器端,当浏览器显示网页时,它随之下载到本地,由本地的浏览器载入运行。内容Java语言简介1JavaEE体系结构2客户层技术3Web层技术4业务层技术5持久层技术6应用效劳器介绍7SSH开源框架8其它9Java EE体系结构体系结构Java EE是一种企业级应用的软件架构,是一种思想,一套标准。目前Java EE已经开展到Java EE 6。Java EE 体系结构图如以下图所示:Java EE的四层结构的四层结构Java EE使用多层的分布式应用模型,应用逻辑按照功能划分为不同的组件,各个应用组件根据它们所在的层分布在不同的效劳器上,以下为Java EE典型的四层结构:1客户层:Client Tier 2Web层(展现层):Web Tier3业务逻辑层:Business Tier4企业信息层EIS:Enterprise Information System-也叫数据持久层Java EE分层职责分层职责主要用来提供给用系统的操作界面,它负责为用户提供输入,并把用户的输入请求发送给效劳器端的表现层,并接收表现层的响应转换为视图组件展现处理。通常指的是客户端程序或者web浏览器。是用户和应用系统“消息传递的纽带,主要用来控制系统业务流程的流转,在Web应用中主要由Jsp/Servlet来实现。接收客户层的请求并调用相应的业务逻辑组件处理,并把结果返回给客户层组件。负责整个系统的业务实现,通过业务规那么对业务请求进行处理。业务层主要由Java Bean组件或者EJB组件实现。也叫数据持久层,专门处理与数据库交互的操作,负责整个系统的数据持久化。组件的实现方式主要有JDBC方式或ORM方式。客户层客户层展现层展现层业务层业务层企业信企业信息层息层Java EE运行方式运行方式JavaEE各层之间的调用依赖关系如以下图所示:内容Java语言简介1JavaEE体系结构2客户层技术3Web层技术4业务层技术5持久层技术6应用效劳器介绍7SSH开源框架8其它9Java客户层技术客户层技术运行在客户端层的Java程序主要有以下几类:1、独立运行的拥有图形界面的Java GUI程序2、通过Java WebStart技术分发与运行的Java GUI程序3、以命令行方式运行的无界面的Java应用程序,具体又分为控制台方式和后台效劳方式4、运行在已安装java plug-in的浏览器中的Java Applet小程序Java GUI应用应用用于开发Java桌面应用程序的gui工具包主要分为以下三类:AWT、Swing和SWTAWTAWTAbstract Window ToolkitAbstract Window Toolkit:SunSun最早发布的用于构建最早发布的用于构建Java GUIJava GUI程序的组件库。程序的组件库。AWTAWT通过通过JNIJNI接口调用本地图形库实现用户界面,为了保证移植性,接口调用本地图形库实现用户界面,为了保证移植性,AWTAWT只提供几个通用操只提供几个通用操作系统图形功能的交集,提供的组件非常简单有限,没有如表、树等常用高级组件。目作系统图形功能的交集,提供的组件非常简单有限,没有如表、树等常用高级组件。目前,前,sunsun不推荐使用不推荐使用AWTAWT,但是由于其简单、稳定、占用内存小等特点,在嵌入式系统开,但是由于其简单、稳定、占用内存小等特点,在嵌入式系统开发中还拥有一席之地。发中还拥有一席之地。SwingSwing:SwingSwing是在是在AWTAWT的根底上构建的一套新的图形界面开发系统,用纯的根底上构建的一套新的图形界面开发系统,用纯javajava代码对代码对AWTAWT的功能进行了大幅度的扩充。的功能进行了大幅度的扩充。SwingSwing中的组件都是利用中的组件都是利用Java2DJava2D图形功能模拟绘制出来的,图形功能模拟绘制出来的,是纯是纯JavaJava实现的,与平台无关。目前,实现的,与平台无关。目前,SwingSwing技术在很大程度上替代了技术在很大程度上替代了AWTAWT技术。技术。SwingSwing优优点是跨平台的一致性,同时支持点是跨平台的一致性,同时支持Look&FeelLook&Feel换肤功能换肤功能,缺点是执行速度较慢,但是随着在缺点是执行速度较慢,但是随着在新版新版JREJRE下性能大幅提高已经接近原生组件。下性能大幅提高已经接近原生组件。SWTSWT:是:是IBMIBM提供的开源提供的开源GUIGUI框架,与框架,与AWT/SwingAWT/Swing有相似的用处,有相似的用处,EclipseEclipse就是用就是用SWTSWT开发的。开发的。SWTSWT最大化了操作系统的图形构建最大化了操作系统的图形构建APIAPI,只要操作系统提供了相应的图形构件,那么,只要操作系统提供了相应的图形构件,那么SWTSWT就就简单的调用它,只有那些操作系统不提供的构件,简单的调用它,只有那些操作系统不提供的构件,SWTSWT才去模拟实现,因此在外观上与操才去模拟实现,因此在外观上与操作系统根本完全一致。作系统根本完全一致。SWTSWT缺点主要是缺点主要是1 1不是不是JavaJava标准标准2 2支持的平台太少。如果不支持的平台太少。如果不考虑移植并且在考虑移植并且在WindowsWindows平台运行,平台运行,SWTSWT可以有很好的表现。可以有很好的表现。Swing vs SWTSwing vs SWTSwing vs SWT比较项目结果备注组件类型Swing=SWT都提供丰富的组件响应速度Swing=SWT(JRE5以上)外观Swing=SWTSwing可以通过LookAndFeel实现绚丽的外观效果;SWT与操作系统外观一致,两种实现方式各有所长扩展性SwingSWTSwing组件更易于扩展,因此能够提供更多功能换肤支持SwingSWTSwing的LookAndFeel机制支持变更外观成熟稳定性SwingSWTSWT因为设计上的缺陷,将资源管理交给开发者管理,因此存在不稳定风险跨平台性SwingSWTSwing采用纯Java实现,可跨平台;SWT在非Windows平台稳定性和性能很差内存消耗SwingSWTSwing使用模拟组件需要更大内存启动时间SwingSWT原因同上注:由于AWT根本不再使用,因此没有进行比较Java Web Start技术技术Java Web Start Java Web Start 是一个软件技术,它是基于是一个软件技术,它是基于 Java Java 的应用程序,允许从的的应用程序,允许从的 Web Web 启动、部启动、部署和更新功能署和更新功能 Java Java客户端应用程序。在第一次启动客户端应用程序。在第一次启动 Java Web Start Java Web Start 时,用户可以从时,用户可以从 Web Web 下载新的客户机应用程序;之后这些应用程序可以通过下载新的客户机应用程序;之后这些应用程序可以通过 Web Web 页面的链接或页面的链接或Windows Windows 中的桌面图标或中的桌面图标或“开始菜单初始化。应用程序在开始菜单初始化。应用程序在 Java Web Start Java Web Start 下快速初始化,被下快速初始化,被高速缓存在客户机,并且可以远程的离线启动。高速缓存在客户机,并且可以远程的离线启动。当客户机应用程序启动时,当客户机应用程序启动时,Java Web Start Java Web Start 自动执行更新,在从原来的高速缓存倘假自动执行更新,在从原来的高速缓存倘假设存在高速缓存装入应用程序的同时,从设存在高速缓存装入应用程序的同时,从 Web Web 下载最新的代码。下载最新的代码。1 1提供一种单击一次即可激活应用程序的便捷方法提供一种单击一次即可激活应用程序的便捷方法2 2保证您始终运行最新版本的应用程序保证您始终运行最新版本的应用程序3 3防止了复杂的安装或升级过程防止了复杂的安装或升级过程详细例子可以参见:Java Web Start优缺点优缺点Java Web Start 技术主要优势:效劳端管理,客户下载;第一次运行只需要下载一些包,但是这些包都能自动存在客户端,第二次运行就不再需要下载;版本管理,自动更新;根据效劳端的版本号与客户端包的版本号差异自动下载和更新新版本的包,;客户端运行的是本地应用,操作和GUI程序一样方便、稳定、响应快、性能好。与客户端其它应用的集成方便;方便支持离线操作;二次开发容易。完全以C/S结构设计、开发程序,然后很容易移植在Java WebStart平台上。要进行前后台的GUI的客户端开发比纯Web要效率高得多。运行时脱离浏览器,运行稳定,浏览器的bug不会给应用程序带来影响。Java Web Start 技术主要缺乏:首次需要下载;客户端应用存在本地,占一点硬盘存储空间;Java AppletJava Applet小应用程序是采用Java创立的基于HTML的程序。含有Applet的网页的HTML文件代码中带有 和这样一对标记,当支持Java的网络浏览器遇到这对标记时,就将下载相应的小应用程序代码并在本地计算机上执行该Applet。这些程序是直接嵌入到页面中,由支持Java的浏览器解释执行能够产生特殊效果的程序。它可以大大提高Web页面的交互能力和动态执行能力。.详细例子可以参见:Java Applet的平安限制的平安限制为了防止平安问题出现,Java Applet如果没有经过数字签名,那么访问客户端下载后会受到使用限制,主要表达在对客户端的本地资源的访问受限:如无法访问本地文件等。可以通过在Applet中参加数字签名的方式实现,只要在Applet运行时用户选择信任这个签名,那么这个Applet就拥有了访问本机资源的权限。如果一个签名没有被CA的证书认证,就会提示说“该应用程序的数字签名无法验证,如果证书是验证过的,对话框就会是询问你是否信任“某公司。无论签名是否已经被验证,只要用户选择信任就可以解除平安限制。Java Applet优缺点优缺点Java Applet 的优势是:B/S结构,客户端应用是动态下载的;和Web Start技术一样,其维护主要在效劳器端;比纯Web技术的交互性好;Java Applet的缺乏是:动态从效劳端装载类文件到浏览器内的Java虚拟机,导致响应药比GUI慢,响应性稍差;由于不同的IE内置的JDK不一致,因此需要下载与应用匹配的JDK安装到客户端并要安装插件plug-in;因运行于浏览器内,因此受浏览器的稳定性影响,或浏览器的bug影响,其稳定性要比GUI差很多;由于运行于浏览器内,所以浏览器会占据客户端不少的内存,大应用时会造成内存溢出。与客户端其它应用集成根本不可能,因为受浏览器隔离。Java客客户层户层技技术术比比较较纯WebClient(JavaScript等)AppletGUIClientWebStart二次开发效率低较高高高维护:客户端安装零安装少量安装(JDK,Plug-in)手工安装自动安装维护:客户端更新无需极少打补丁或重装自动更新交互性差一般好同GUI响应性差(无连接方式与服务端交互)一般好(面向连接方式与服务端交互)同GUI客户端性能差(JavaScript解析)一般(需动态从服务端下载class)好(客户端直接加载)同GUI操作效率低一般高同GUI稳定性差(依赖IE)差(依赖IE)好同GUI误操作易发生易发生少发生同GUI客户端应用集成难(通过ActiveX)最难(运行于IE内)易(直接应用集成)同GUI离线操作难(依赖IE)难(依赖IE)可能(脱离浏览器)同GUI内容Java语言简介1JavaEE体系结构2客户层技术3Web层技术4业务层技术5持久层技术6应用效劳器介绍7SSH开源框架8其它9Servlet简介简介浏览器访问网页的过程就是浏览器通过HTTP协议与Web效劳器交互的过程.针对纯HTML的静态网页,只须把资源放在Web效劳器上供浏览即可.随着应用的开展,客户端与效劳器需要动态交互,为了实现这一目标,需要开发一个遵循HTTP协议的效劳器端应用软件来处理各种用户请求。什么是Servlet:1、Servlet是一种独立于操作系统和协议的效劳器端Java应用程序.2、Servlet能动态响应客户端请求,生成动态的Web页面,从而扩展效劳器的功能.3、Servlet由Servlet容器管理(Servlet的运行环境),Tomcat就是一个常用的Servlet容器。Servlet工作流程工作流程Servlet1Servlet2HTTPServerWebWeb应用效劳器应用效劳器(如如Tomcat)Tomcat)ServletServlet容器容器Web浏览器器客户端客户端HTTPHTTP请求请求HTTPHTTP响应响应业务Bean客户端(浏览器)向Web效劳器发送一个基于HTTP协议的请求.HTTP Server接收到该请求,并将请求交给Servlet容器处理.Servlet容器根据Servlet配置来查找或创立Servlet实例,并执行该Servlet,Servlet容器必须把客户端请求和响应封装成Servlet请求和响应对象传给Servlet.Servlet使用请求对象获取客户端的信息,比方IP地址、请求的参数等,并执行特定业务逻辑;使用响应对象向客户端发送业务执行的结果.Servlet处理完请求后,通过HTTP Server将最终展现结果返回到客户端浏览器Servlet展展现动态现动态网网页页例如例如public class test extends HttpServlet protected void doGet(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException PrintWriter out=response.getWriter();out.println(+Hello World!+);HTTPServerHaha Hello World!返回的返回的HTTPHTTP响应内容响应内容ServletServlet容器容器JSP简介简介JSP(Java Server Page)是sun公司开发的一种效劳器端脚本语言,是一种动态网页技术标准。JSP本质上就是把Java代码嵌套到HTML网页中为用户提供动态数据,当用户访问该JSP页面时,JSP容器将页面编译执行,可以根据其中的动态代码的运行结果生成对应的结果HTML代码,并在客户端的浏览器中显示出来。用JSP开发的Web应用是跨平台的,部署在Tomcat等Web应用效劳器中运行。JSP最终会被转换成标准的Servlet(JSP的实质仍然是servlet)。JSP的目的在于简化表示层的表示。这是一个JSP例如页面 .test.jstest.jsp pJSP和和Servlet区别区别通俗的讲,JSP是往HTML里嵌Java代码,Servlet是在Java代码里输出HTML元素。也就是说,JSP将业务层混合到表示层中,而Servlet将表示层混合到业务层中。Servlet用来写业务层是很强大的,但是对于写表示层就很不方便。JSP那么主要是为了方便写表示层而设计的,当然也可以写业务层。response.setContentType(text/html;charset=gb2312);PrintWriter out=response.getWriter();out.println();out.println(A Servlet);out.println();for(int i=1;i=5;i+)out.print();out.println(测试JSP);out.println();out.println();out.flush();out.close();A Servlet%for(int i=1;i font size=测试JSP ServletServlet实现实现jspjsp实实现现JSP与与Servlet关系关系由于HttpServlet大多是用来响应HTTP请求,并返回Web页面,所以不可防止地,在编写servlet时会涉及大量的HTML内容,这给servlet书写效率和可读性带来很大障碍。JSP使用HTML的书写格式,在适当的地方参加Java代码片断,将程序员从复杂的HTML中解放出来,更专注于业务处理方面的内容。JSP在首次被访问的时候被应用效劳器转换为servlet,在以后的运行中,容器直接调用这个servlet,而不再访问JSP页面。Struts开源框架开源框架Struts是Apache下的一个开源工程,它通过采用 ServletJSP技术,实现了基于Java Web应用的Model-View-ControllerMVC设计模式的应用框架。在Java EE的Web应用开展的初期,除了使用Servlet技术以外,普遍是在JSP的源代码中,采用HTML与Java代码混合的方式进行开发。因为这两种方式不可防止的要把表现与业务逻辑代码混合在一起,给前期开发与后期维护带来巨大的复杂度。为了摆脱上述的约束与局限,把业务逻辑代码从表现层中清晰的别离出来,2000年,Craig McClanahan采用了MVC的设计模式开发Struts。后来该框架产品一度被认为是最广泛、最流行JAVA的WEB应用框架。Struts 2是Struts的下一代产品,是在 struts 和WebWork的技术根底上进行了合并的全新的Struts 2框架。JavaFX技术技术JavaFX Script 编程语言以下称为JavaFX是Sun公司开发的一种declarative,statically typed(声明性的、静态类型)脚本语言,它使您能利用 JavaFX 编程语言开发富互联网应用程序(RIA)。JavaFX平台建立在其广泛应用的Java编程语言的根底上,旨在建立大量可在电脑和 上运行的网络程序。类似RIA技术:微软 SilverLightAdobe Flex例如参见:例如参见:内容Java语言简介1JavaEE体系结构2客户层技术3Web层技术4业务层技术5持久层技术6应用效劳器介绍7SSH开源框架8其它9EJB与与JavaBeanEJB是采用Java编写的效劳器端组件,它包含应用程序的业务逻辑,用于开发和部署基于组件的分布式业务的应用程序对技术人员来说,EJB可理解为一个可以复用的程序模块,对业务人员来说,EJB完成了所需要的业务功能。EJB必须部署在EJB容器里,由EJB容器进行管理,通过EJB容器对外提供效劳。常见的EJB容器有JBoss、Weblogic和WebSphere。JavaBean是一个非常简单的遵循特定写法的Java类。JavaBean组件是一些可移植、可重用、并可以组装到应用程序中的Java类通常将数据或业务逻辑封装到JavaBean中供Jsp/Servlet调用,实现展现逻辑与业务逻辑的别离JavaBean可以部署在任何JRE运行环境中。JavaEE业务层技术主要有:EJB和JavaBean两种。EJB和JavaBean的主要区别:1、JavaBean是轻量级组件,EJB是重型组件2、JavaBean是本地进程内组件同JVM内,EJB是分布式、进程间组件3、JavaBean可运行在任何JRE上,EJB必须部署在EJB容器中EJBPOJOJspServletEJBEJB容器容器JspServletweb浏览器器wap浏览器器客客户端端软件件webweb版无线城市版无线城市wapwap版无线城市版无线城市数据库业务层业务层WebWeb层层客户层客户层持久层持久层EJB的最大优势:的最大优势:分布式分布式JspServletJspServletweb浏览器器wap浏览器器webweb版无线城市版无线城市wapwap版无线城市版无线城市数据库业务层技术实践业务层技术实践JavaBeanJavaBeanjsp/Servlet+JavaBean方式jsp/Servlet+EJB方式Spring开源框架开源框架Spring是一个开源框架,它由Rod Johnson创立。它是为了解决企业应用开发的复杂性而创立的。Spring使用根本的JavaBean来完成以前只可能由EJB完成的事情,简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。目的:解决企业应用开发的复杂性 功能:使用根本的JavaBean代替EJB,并提供了更多的企业应用功能 轻量从大小与开销两方面而言Spring都是轻量的。此外,Spring是非侵入式的:典型地,Spring应用中的对象不依赖于Spring的特定类。控制反转Spring通过一种称作控制反转IoC的技术促进了松耦合。当应用了IoC,一个对象依赖的其它对象会通过被动的方式传递进来,而不是这个对象自己创立或者查找依赖对象,而是容器在对象初始化时不等对象请求就主动将依赖传递给它。面向切面Spring提供了面向切面编程的丰富支持,允许通过别离应用的业务逻辑与系统级效劳例如日志和事务管理进行内聚性的开发。应用对象只实现它们应该做的完成业务逻辑仅此而已。它们并不负责甚至是意识其它的系统级关注点,例如日志或事务支持。容器Spring包含并管理应用对象的配置和生命周期,在这个意义上它是一种容器,框架Spring可以将简单的组件配置、组合成为复杂的应用。在Spring中,应用对象被声明式地组合,典型地是在一个XML文件里。Spring也提供了很多根底功能事务管理、持久化框架集成等等,将应用逻辑的开发留给了你。内容Java语言简介1JavaEE体系结构2客户层技术3Web层技术4业务层技术5持久层技术6应用效劳器介绍7SSH开源框架8其它9数据持久化数据持久化内存姓名:小颖性别:女特长:英语、程序设计磁盘文件或数据库等瞬时状态:保存在内存的程序数据,程序退出后,数据就消失了,称为瞬时状态持久状态:保存在磁盘上的程序数据,程序退出后依然存在,称为程序数据的持久状态持久化:将程序数据在瞬时状态和持久状态之间转换的机制什么是数据持久化?JDBCORM持久化技术:1调用原始JDBCAPI,直接读写数据库表2调用ORM直接对对象进行操作,再由ORM调用JDBC实现持久化JDBC技术技术JDBCJava Data Base Connectivity,java数据库连接是一种用于执行SQL语句的Java API,它由一组用Java语言编写的类和接口组成,提供了访问不同关系数据库DBMS的统一方法和接口,使开发人员能够编写可在不同数据库间移植的应用程序。应用程序JDBCAPI数据库JDBCDriverSQLSQL语句:语句:select*from table1select*from table1返回结果集返回结果集DataSetDataSetsun提供提供数据数据库厂厂商商实现什么是什么是ORMORMORM,即,即Object-Relational Mapping Object-Relational Mapping 对象关系映射,它的作用是在关系型数对象关系映射,它的作用是在关系型数据库和对象之间作一个映射,这样,我们在具体的操作数据库的时候,就不据库和对象之间作一个映射,这样,我们在具体的操作数据库的时候,就不需要再去和复杂的需要再去和复杂的SQLSQL语句打交道,只要像平时操作对象一样操作它就可以了。语句打交道,只要像平时操作对象一样操作它就可以了。对象数据(OO)name:小颖sex:女skill:英语、程序设计User对象持久化层业务逻辑层表现层数据库层tbl_user表关系型数据Rtbl_user表记录映射信息M类类:User表表:tbl_user属性属性字段字段nameuser_namesexuser_sexskilluser_skillORM层主流ORM框架:1、Hibernate/EJB3.0JPA2、iBATIS常见持久化技术常见持久化技术数据库持久化技术主要分为两类:数据库持久化技术主要分为两类:1 1、手写、手写SQLSQL语句,通过语句,通过JDBC APIJDBC API操作数据库操作数据库2 2、利用、利用ORMORM框架,直接操作对象,由框架,直接操作对象,由ORMORM框架负责生成框架负责生成SQLSQL并执行并执行目前主流的目前主流的ORMORM框架主要有:框架主要有:Hibernate是目前主流的开源ORM持久层框架,提供了从对象到数据库表的全套映射机制,可以使用面向对象思想来操作数据库。只需定义好了对象到数据库表的映射关系,即可通过 Hibernate提供的方法直接对对象进行持久化,由Hibernate负责在后台自动生成SQL对数据库进行操作。HibernateHibernate相对Hibernate而言,iBATIS是一种“半自动化的ORM持久化框架。iBATIS在对象和SQL语句之间建立映射关系,并不会为程序员在运行期自动生成 SQL 执行。具体的 SQL 需要程序员编写,然后通过映射配置文件,将SQL所需的参数,以及返回的结果字段映射到指定对象。HibernateHibernateHibernate实现机制实现机制Hibernate数据库/4、开始一个事务、开始一个事务tx=session.beginTransaction();/5、持久化操作、持久化操作User user=new User();user.setUname(user);user.setUpass(“password);session.save(user);/6、提交事务提交事务tx mit();缓存自动生成JDBCJDBC语句执行:stmt.execute(“insert into stmt.execute(“insert into user_tbl(uuname,upass)user_tbl(uuname,upass)values(user,passwordvalues(user,password)JDBCHibernate最终根据映射配置文件,将类操作自动生成相应的SQL语句并调用JDBC执行映射配置文件映射配置文件uuser_hbm.xmliBATIS实现机制实现机制iBATIS数据库sqlMapClient.startTransaction();/持久化操作持久化操作User user=new User();user.setUname(user);user.setUpass(“password);sqlMapClient.insert(“insertUser,user);/6、提交事务提交事务sqlMapClient mitTransaction();调用相应的JDBCJDBC语句执行:stmt.execute(“insert into stmt.execute(“insert into user_tbl(uname,upass)user_tbl(uname,upass)values(user,passwordvalues(user,password)JDBC.insert into user_tbl(uname,upass)values (#User.uname#,#User.upass#).iBATIS调用映射配置文件中相应的SQL语句,并将SQL所需的参数,以及返回的结果字段映射到指定对象映射配置文件映射配置文件sqlMap持久层技术优缺点比较持久层技术优缺点比较ORM框架优点缺点JDBCJDBC性能最好,最灵活,代码优化容易要自己写SQL语句,开发效率最低代码繁杂,容易出错,可读性差,维护困难使用存储过程的情况下移植困难无法快速适应数据库修改Hibernate/Hibernate/EJB3.0 JPAEJB3.0 JPA成熟,流行的ORM框架直接操作类对象,无需手动写SQL语句,功能强大,便于数据库修改简化代码,减少BUG,开发效率高隔离数据源,数据库移植性很好自动生成SQL语句,不利于优化性能不如原生的JDBC方式学习门槛高,精通困难iBATISiBATIS具有JDBC的方式优点,性能接近JDBC据称比JDBC方式减少61%代码量SQL语句与代码分离,便于修改维护增强了数据库移植性简单,易于学习掌握具有JDBC方式的大部分缺点也需要手动写SQL语句持久层封装不够彻底,只是一个DBHelper备注:由于备注:由于EJB3.0 JPAEJB3.0 JPA与与HibernateHibernate非常类似,所以视为同一类。非常类似,所以视为同一类。JDBCJDBC手动手动vs iBATISvs iBATIS半自动半自动 vs Hibernate vs Hibernate全自动全自动内容Java语言简介1JavaEE体系结构2客户层技术3Web层技术4业务层技术5持久层技术6应用效劳器介绍7SSH开源框架8其它9Java EE容器容器容器为Java EE 应用组件提供了运行环境,效劳器端的Java EE 容器主要包括:1Web容器:负责Jsp/Servlet组件的运行和管理。2EJB容器:提供支持EJB组件的运行环境,进行EJB组件的生命周期管理。应用效劳器分类应用效劳器分类根据应用效劳器支持组件程度的不同,Java EE 应用效劳器相应的也分为两种:1Web应用效劳器:只包含Web容器,局部实现Java EE标准,可以运行html静态页面和Jsp/Servlet动态页面 2Java EE应用效劳器:包含Web容器和EJB容器,完全或几乎完全实现Java EE 标准,可以运行html静态页面和Jsp/Servlet动态页面,也可以运行EJB组件,并且支持Java EE 标准中的其他组件效劳。EJBPOJOJspServletWebWeb容器容器JavaEEJavaEE应用效劳器应用效劳器EJBEJB容器容器WebWeb应用效劳器应用效劳器ApplicationApplet客户端客户端Java主流主流应应用效用效劳劳器器服务器类型功能支持名称厂商开源/商业说明Web应用服务器httpservletjspTomcatApache开源应用最广泛的免费开源Web应用服务器,有着强大的开发者社区以及丰富的文档资源小型轻量化,占用系统资源小,扩展性好;适用于开发调试或者中小型系统,通过集群负载均衡也可支持大并发量访问Jettycodehaus开源Jetty是一个用Java实现的开源的Http和Web服务器,小巧,灵活。Jetty既可以像tomcat一样独立运行,也可以很方便的嵌入到工具、框架或其他应用服务器中运行。如云计算服务(GoogleAppEngine)JavaEE应用服务器httpservletjspejbJbossRed Hat开源+商业开源的JavaEE服务器,通过LGPL许可证发布,可免费用于商用;通过内嵌的Tomcat/Jetty实现Web容器功能;可提供有偿技术支持WeblogicSun(BEA)商业价格高昂,功能完善,出色的性能和高可靠性以及完善的售后服务WebSphereIBM商业更高的价格,功能完善,出色的性能和高可靠性以及完善的售后服务内容Java语言简介1JavaEE体系结构2客户层技术3Web层技术4业务层技术5持久层技术6应用效劳器介绍7SSH开源框架8其它9SSH开源框架介绍开源框架介绍SSH:SSH:指的是由指的是由Struts+Spring+HibernateStruts+Spring+Hibernate构成的轻量级开源构成的轻量级开源webweb应用系统开发应用系统开发框架。其中:框架。其中:WebWeb层展现层:采用层展现层:采用StrutsStruts框架,通过框架,通过StrutsStruts的的MVCMVC模式将展现层的业务逻辑模式将展现层的业务逻辑与展现逻辑相别离,实现更清晰的业务流程控制。与展现逻辑相别离,实现更清晰的业务流程控制。数据持久层:采用数据持久层:采用HibernateHibernate实现实体对象的持久化。实现实体对象的持久化。业务层:采用业务层:采用SpringSpring框架,通过框架,通过SpringSpring的的IOCIOC和和AOPAOP机制实现业务模块的解耦,同机制实现业务模块的解耦,同时利用时利用SpringSpring与其他开源框架的良好集成性黏合与其他开源框架的良好集成性黏合StrutsStruts、HibernateHibernate,将,将WebWeb层、层、业务层及持久层无缝整合。业务层及持久层无缝整合。SSH框架的框架的MVC运行模式运行模式Controller ServletViewerjspActionBeanBusinessJavaBeanHibernateStrutsStrutsSpringSpringDBControllerControllerViewerViewerModelModel1Struts中的Controller Servlet控制器负责处理用户请求2Controller Servlet将用户请求发送给对应的Action Bean3Action Bean调用Spring中的业务效劳模块进行处理4Controller Servlet根据Action Bean的返回结果选择不同的展示页面Viwer jsp5Viewer jsp从Action Servlet获取结果信息6Viewer jsp根据结果信息生成html页面并返回给客户端浏览器(1(1)(2(2)(3(3)(4(4)(5(5)(6(6)内容Java语言简介1JavaEE体系结构2客户层技术3Web层技术4业务层技术5持久层技术6应用效劳器介绍7SSH开源框架8其它9JMS与消息中间件与消息中间件JMSJMS即即JavaJava消息效劳消息效劳Java Message ServiceJava Message Service应用程序接口是一个应用程序接口是一个JavaJava平台中关平台中关于面向消息中间件于面向消息中间件MOMMOM的的APIAPI,用于在两个应用程序之间,或分布式系统中发,用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信。送消息,进行异步通信。JMSJMS类似于类似于 JDBC JDBC,JDBC JDBC 是可以用来访问许多不同关系数据库的是可以用来访问许多不同关系数据库的 API API,而,而 JMS JMS 那那么提供同样与厂商无关的访问方法,以访问消息中间件。么提供同样与厂商无关的访问方法,以访问消息中间件。许多厂商的消息中间件目前都支持许多厂商的消息中间件目前都支持 JMS JMS,包括,包括 IBM IBM 的的 MQSeries MQSeries、BEABEA的的 Weblogic JMS serviceWeblogic JMS service以及开源的以及开源的Apache ActiveMQApache ActiveMQ等。等。JMSJMS可以支持消息持久化及传递优先级。可以支持消息持久化及传递优先级。JMSJMS消息传送支持以下两种模式:消息传送支持以下两种模式:1 1点对点模式点对点模式2 2发布发布/订阅模式订阅模式点对点模式:一个生产者向一个特定的点对点模式:一个生产者向一个特定的队列队列QueueQueue发布消息,一个且只有一发布消息,一个且只有一个消费者能从该队列读取消息,个消费者能从该队列读取消息,发布发布/订阅模式:发布者向一个特定的消息主订阅模式:发布者向一个特定的消息主题题TopicTopic发送消息,发送消息,0 0或多个消息订阅者或多个消息订阅者可以接收到消息可以接收到消息JNI技术技术JNIJava Native Interface是java语言的本地编程接口,是j2sdk的一部份,它允许Java代码和其他编程语言如C/C+、汇编写的程序和类库进行交互。在java程序中我们可以通过jni实现一些用java语言不便实现的功能。通常有以下几种情况我们需要使用jni来实现。标准的java类库没有提供你的应用程序所需的功能,通常这些功能是平台相关的。你希望使用一些类库或应用程序,而他们并非用java语言编写的。程序的某些局部对速度的要求是比较苛刻的,你选择用汇编或c语言实现,并在java语言中调用他们。需要注意的是使用jni你的程序就会丧失可移植性。目前JNI技术在Android开发中得到大量应用,Android程序通过JNI技术直接调用底层Linux操作系统API,如Wifi、3G、camera和g-sensor等硬件相关功能。.Java文件Javac编译.class文件.dll/.so文件JVMJNI.cpp文件编译器开放移动互联网平台开放移动互联网平台OMPOPEN MOBILE-INTERNET PLATFORMThank you!网管中心网管中心 业务支撑室业务支撑室20212021年年4 4月月
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 商业管理 > 商业计划


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

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


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