《JavaEE概述》PPT课件.ppt_第1页
《JavaEE概述》PPT课件.ppt_第2页
《JavaEE概述》PPT课件.ppt_第3页
《JavaEE概述》PPT课件.ppt_第4页
《JavaEE概述》PPT课件.ppt_第5页
已阅读5页,还剩48页未读 继续免费阅读

下载本文档

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

文档简介

1,J2EE开发平台 及程序设计,华北电力大学计算机系 王蓝婧 公共邮箱: 密码:ruanjian2011,2,J2EE Java 2 Platform Enterprise Edition -Java2平台企业版 Java EE Java Enterprise Edition,3,第一章 JavaEE概述,4,目录,5,1.1 Java EE 产生的背景,6,问题1:从java语言的发展来看,1995年 ,Sun公司推出Java技术 十多年来已发展成为全球第一大软件开发平台 特点:跨平台、面向对象、多线程、半编译半解释等 1999年,Java从一种语言发展成为一种开发平台 ,出现Sun ONE体系结构,以Java语言为核心,包括以下三个版本: J2SE Standard J2ME Micro J2EE Enterprise 2005年8月, Java升级到1.5版,SUN公司将J2EE 1.5改名为java EE 5,以前J2EE版本还是称为J2EE。,7,8,9,Java SE,10,Java ME,11,Java EE,12,Java EE 不是编程语言! Java EE是一个标准中间件体系结构 Java EE是开发分布式企业级应用的标准,问题2:Java EE究竟是什么?,13,问题3:为什么需要 JavaEE?,企业应用程序的特点 企业级应用程序体系结构 企业应用的特点(分布式、面向web、开发的、集成的、可移植、易于扩展和维护,企业计算具有一致性、事务性、安全性等)决定了企业应用的体系结构 Java EE集上述特性为一身!,14,企业应用程序的特点,分布式 企业应用日常的运行环境 局域网组织内部 Internet连接分布在世界各地的部门或者用户面向web 高速反应性 企业程序必须具备能力来及时适应需求的改变 社会需求的瞬息万变企业不断变更业务规则以适应 安全性 系统安全可靠正常运行 合法用户经过合法途径使用(是否未经登录?是否直接录入网址?是否有权限?谁在运行?) 事务性 两个或多个网络的计算机资源上访问并更新数据的时候不会错,一个程序要么进行一系列数据库操作成功完成, 要么一点也不做,避免写到一半的时候出错如银行转账 可扩展性 潜在用户数量的不断膨胀应用性能要扩展 企业的信息资源不断增长系统功能的扩展系统的结构能否很容易在保留原有功能的基础上很容易扩展?开放性?插件? 集成化 旧系统的集成支持不是白手起家 现有系统之间的集成 可移植性、易维护,15,企业级应用程序体系结构,1) C/S与B/S结构 2) 两层、三层和多层结构,16,客户层 (人机交互/应用逻辑/数据访问),1)C/S两层结构,安全性低 客户端同DB服务器直连非法用户容易通过客户端入侵 部署困难胖客户端 客户端软件 不是基于web的,只能适用在LAN 胖客户端:应用逻辑集中在客户端, 安装耗时:需要每台客户端都安装客户端专用的应用程序 扩展更新困难:每次业务规则变化,都需要不断更新或重新安装客户端代码,重新部署客户端 耗费系统资源 每个客户端程序都直连到DB服务器,为每个客户端建立连接耗费服务器资源耗费资源 不适合过多的用户,服务层 (数据服务),客户端应用程序,数据库服务器,17,2)B/S三层结构,安全性高: 中间的应用层,隔离了客户端程序对数据服务器的直接访问,保护了数据安全 部署容易瘦客户端 客户层的功能大大削弱,原来由客户端实现的应用逻辑和数据访问等功能都迁移到服务器上实现了 瘦客户应用逻辑集中在服务器端 很多应用只需安装浏览器即可,基于web的 快速响应 通过中间件服务器的负载均衡和缓存数据能力,提高对客户端的响应速度 易于扩展 每次业务规则变化,只需在应用服务器重新部署新服务器端组件,无需更新或重新安装每个客户端,客户层 (表示逻辑),数据层 (数据服务),数据库服务器,浏览器,数据库服务器,18,JavaEE的三层体系结构,19,3)多层结构,中间服务器又按应用逻辑划分成若干子层,应用服务器,Web 表示层,客户层,数据层 (数据服务),数据库服务器,浏览器,业务逻辑层,.,20,Web 服务器,JavaEE的多层体系结构,客户,客户层,业务逻辑层,企业信息系统层 数据层,数据库服务器,邮件服务器,Web 容器,表示层 (web层),客户端应用程序,EJB 容器,JSP,Servlet,会话 Bean,实体 Bean,消息 Bean,应用服务器,数据库服务器,Servlet,21,Entity Bean,浏览器,客户,服务器,客户端/服务器端表示层,服务器端 商业逻辑,企业信息 系统,域,服务,应用,表示,持续化,客户应用容器,Web container,EJB 容器,DB,Simple Bean,Session Bean,Html,Applet,Web 服务器,JSP,Servlet,服务器端应用,J2EE的N层体系结构(略),22,Java EE 不是编程语言 Java EE是一个标准中间件体系结构 Java EE是开发分布式企业级应用的标准 它规范了: 分布式组件(JSP、Servlet 、EJB)应该实现哪些接口、提供哪些方法? 容器应该提供的服务 容器:分布式组件的运行环境 如Jsp运行在web容器中 EJB组件运行在EJB容器中 容器实现的服务:JDBC,JNDI,JMS消息服务等,23,支持Java EE的厂商,Java EE规范被众多中间件厂商所实现,不同厂家有不同的实现,但都遵循同一JavaEE规范,可以互相部署开放性。 支持JavaEE的厂商和应用服务器 Sun 公司: Sun One 服务器 Netbeans自带的GlassfishV2 服务器内置Applicaition Server BEA的weblogic IBM的WebSpere JBoss 开发环境 NetBeans(内置应用服务器GlassFishV2)+MySQL Eclipse+MyEclipse+Tomcat+MySQL Web应用,不包括j2EE Eclipse+MyEclipse+Jboss+MySQL 支持EJB,24,JavaEE的组件和容器,组件:JavaEE基本的软件单元 容器:分布式组件的运行环境 容器为组件提供必需的底层基础功能服务 javaEE的容器由厂商实现,javaEE服务器中均包含Web容器和EJB容器的实现 如JDNI服务、JDBC、JMS、持久化、事务支持、并发、安全性、资源和生命周期管理 程序员根据特定应用需求编写组件,专注于业务逻辑 而不必困扰在复杂的企业应用环境这些由容器实现了 组件与容器:面包与烤箱 面包师:面包是什么配比,什么馅的,什么形状的,口味如何,多高温度,多久 不用管烤箱的安全防护机制、容量, 电、温度的转换、定时器的控制 都是烤箱的事,而烤箱的控制是厂家实现的,25,组件和容器之间的交互部署描述文件,Web 服务器,Servlet,部署描述文件 Web.xml,EJB容器,EJB,部署描述文件 ejb-jar.xml,参见P28页 第一个servet的web.xml我们编写 First.java 这是一个servlet类,其实就是一个java类(P24) 那么在IE中如何访问它呢? 就是通过部署在web服务器上的web.xml来知道的。 输入:http:/localhost:8080/SimpleServlet/First,26,Web包容器,是Web应用程序的基本运行环境和框架。 由web服务器实现,Web应用程序,对应一个目录(或者网站),包括html、servlet、applet、jsp、图片等。,例:Web应用程序和Web包容器,27,J2EE核心技术,组件 (1)Java Servlet (2)JSP JavaServer Pages (3)EJB Enterprise JavaBeans 服务: (1)JDBC Java DataBase Connectivity (2)JNDI Java Naming and Directory Interface (3)JTA Java Transaction API (4)JAAS Java Authentication and Authorization Service (5)JCA J2EE Connector Architecture J2EE Connector Architecture (6)Java Persistent (7)Web service (8) XML (9)JMS Java Message Service API (10)RMI (11)Java IDL/CORBA (12)JavaMail/JAF JavaBeans Activation Framework,28,J2EE核心技术之组件技术,1) J2EE客户端组件 2) Web组件 3) 业务组件,29,1) J2EE客户端组件,Web客户端:Web Browser- DHTML Applet:Java Plug-in 经web从服务器端下载,无需安装 java应用程序客户端:Swing, SWT, Jface,JavaBeans 需要安装(就是java Application),30,2)Web组件,通过HTTP协议对web请求进行响应动态生成网页 不包括HTML, Applet和服务器端工具类 Servlet (Server端的小程序),服务器端运行的程序, 实际上就是一个java类 但是它能动态处理HTTP请求和并能返回响应(能生成网页) JSP: 简化的,能在第一次运行的时候自动转换为Servlet Html语言(页面呈现)+嵌入java语言或指令(控制逻辑),31,3)业务组件,EJB 实现特定的应用逻辑企业的算法、业务规则 而不是像web组件一样处理客户端请求生成动态网页 Session Bean(会话Bean) Message-Driven Bean(消息驱动Bean) Entity Bean(实体Bean),32,容器及类型,容器 容器是Java EE的运行环境,这种环境是为应用组件服务的 例如web容器 四类容器 EJB容器 Application Client容器 Web容器 Applet容器,33,图:JavaEE容器服务与接口(详图),容器 容器是Java EE的运行环境,这种环境是为应用组件服务的。各容器为相应类型的应用程序组件提供底层服务,如各矩形下半部的格子表示 四类容器 EJB容器 Application Client容器 Web容器 Applet容器,34,J2EE容器 事务 状态管理 多线程 资源池 复杂的底层细节 容器服务 安全 事务管理 JNDI 远程连接 可配置的服务:如安全性 不可配置的服务 EJB和Servlet的生命周期、数据库连接池 数据持久性、J2EE平台API,35,J2EE核心技术,组件 (1)Java Servlet (2)JSP JavaServer Pages (3)EJB Enterprise JavaBeans 服务: (1)JDBC Java DataBase Connectivity (2)JNDI Java Naming and Directory Interface (3)JTA Java Transaction API (4)JAAS Java Authentication and Authorization Service (5)JCA J2EE Connector Architecture J2EE Connector Architecture (6)Java Persistent (7)Web service (8) XML (9)JMS Java Message Service API (10)RMI (11)Java IDL/CORBA (12)JavaMail/JAF JavaBeans Activation Framework,36,(1) JDBC:数据库连接接口,数据库访问几乎是所有企业应用都会用到的 JDBC提供了java程序和数据库服务器之间的连接服务,同时能保证事务的正常进行, JDBC允许从Java的方法里调用SQL命令 ,进行数据查询 JDBC API为访问不同的数据库提供了一种统一的途径,使应用程序开发人员使用JDBC可以连接任何提供了JDBC驱动程序的数据库系统,这样就使得程序员无需对特定的数据库系统的特点有过多的了解,大大简化和加快了开发过程,Java应用程序,数据库,37,(2)JNDI:Java命名和目录服务接口 Java Naming and Directory Interface,JNDI是分布式系统的命名和目录服务对分布式系统中的资源(文件、分布式对象、服务)进行方便的访问和管理,允许组件定位其他组件和资源,提供了企业级应用所需要的资源和外部信息的注册、存储以及获取组件等功能 JNDI中,企业应用在命名环境(相当于电话簿)中注册,使用者通过JNDI来查找它 例:电话购物拨电话无需管谁供货。厂家、门市、总部?怎么供 例:电话预约看病拨电话无需管人家的电话预约系统是如何管理和查询的 像公共电话簿,记录每个单位登记的电话号码。对于单位对象,有地址等属性可利用 许多J2EE组件的使用需要JNDI 的支持 在JMS、JMail、JDBC、EJB等技术中,大量应用这种技术,属性名,属性值,DataSource在哪里?,EJB在哪里?,38,(3) JTA :Java事务处理,事务是一组原子(Atomic)操作的工作单元 以数据库存取的实例来说,就是一组SQL指令,这一组SQL指令必须全部执行成功,若因为某个原因未全部执行成功(例如其中一行SQL有错误),则先前所有执行过的SQL指令都会被撤消。如转账 一个客户从A银行转账至B银行,要作的动作为从A银行的账户扣款、在B银行的账户加上转账的金额,若已经从A转出,未到B,那么这钱究竟在哪里呢?两个动作必须成功,如果有一个动作失败,则此次转账失败。,银行B,银行A,JTA保证数据读写的时候不会错,把这些关键的操作当成一系列完整的不可分割的操作事务(不能间断,成批完成) 当程序进行数据库操作时,要么全部成功完成(commit) 若中间中断,则一点也不完成(rollback) JTA技术是由容器完成,减轻了开发者的负担,39,(4)JAAS :Java的认证和授权服务,早期的java安全通过验证代码的来源和作者,保护用户免受下载代码的攻击 JAAS通过验证谁在运行代码及其权限,来保护系统免受用户的攻击 为JavaEE应用程序提供一种途径来认证和授权一个企业应用用户或用户组,Java Authentication and Authorization Service,40,(5)JCA:Java连接框架技术,用于连接J2EE平台到EIS(企业信息系统)的标准API EIS包括 ERP(企业资源计划Enterprise Resourse Program) 大型机数据库处理 数据库系统 异构的、分布的 旧系统,数据仍旧需要访问的遗产系统legacy,不一定是标准的java程序或者数据库 JCA定义了一套安全的扩展的数据交互机制,解决现有J2EE系统同其它类型系统的集成,J2EE Connector Architecture J2EE Connector,41,(6)Java Persistence API持久化,持久化:信息永久的存储到关系型数据库等永久介质中 如账户信息,顾客信息,交易记录等等 持久化技术的发展史: 1997年-1998年:TopLink,CocoBase,ODMG 1999年-2001年:Entity Bean,JDO 2002年-2003年:TopLink,Hibernate,iBatis数据库层 2004年:JDO稳步发展;Hibernate飞黄腾达,42,(7)Web Service,Web services是建立可互操作的分布式应用程序的新平台 。 背景: 分布式组件的部署难度DCOM的困难 客户机和服务器通信协议的问题http 与其他程序的互操作性和异构型 你可以用任何你喜欢的语言,在任何你喜欢的平台上写Web service 好东西大家一起分享 只要我们可以通过Web service标准对这些服务进行查询和访问。 Web服务基于XML,43,(8)XML,XML是一种可以用来定义其它标记语言的语言。 它被用来在不同的商务过程中共享数据 如J2EE中的配置文件均是XML格式的,44,(9)JMS:java 消息服务,Java消息服务(JavaMessage Service,JMS)是一个消息标准,它允许JavaEE应用程序组件产生、发送、接收和读取消息 Java平台中关于面向消息中间件(MOM)的API,用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信,45,(10)RMI/IIOP,RMI协议调用远程对象上方法,使用序列化方式在客户端和服务器端的对象之间传递数据。 RMI使原先的程序在同一操作系统上的方法调用,变成了不同操作系统之间程序的方法调用。 RMI(Remote Method Invoke)是一种被EJB使用的更底层的协议 一个EJB可以通过RMI调用另一台机器上的EJB远程方法,46,(11)Java IDL/CORBA,CORBA(Common Object Request Broker Architecture)是一个分布式对象体系结构,它独立于平台,也独立于语言。 在这个体系结构中,一个对象可以被本机上的客户或远程客户通过方法激活来存取。客户(一个对象或应用)无须知道被调用对象(称为服务对象)的运行环境,也无须知道实现这个对象的编程语言,客户只要知道服务对象的逻辑地址和提供的接口。 这种互操作性的关键是IDL(Interface Definition Language、接口定义语言),IDL说明对象接口中的方法,这些方法可以被其它对象(或应用)激活。,47,RMI和CORBA相比(参考),两者的关键差别在于语言环境,Java RMI是一个分布式对象计算的纯Java解决方案(如,在Java RMI中,对象的接口用Java定义,而不是用IDL); CORBA没有定义安全服务,而Java RMI继承了Java的安全性; CORBA有不同的实现,不同的独立软件开发商的不同实现均有独特性,这使得在不同平台上的匹配比较困难,而且不是所有CORBA产品开发商都支持所有平台,而几乎所有平台都支持Java虚拟机,因此Java RMI具有更高的可移植性。如果客户对象和服务对象都基于Java虚拟机,那么Java RMI是分布对象计算的最好选择。 最后,IIOP已经提供了Java RMI和CORBA的互操作能力,而且两者的发展有互相借鉴的趋势。,48,(12)JavaMail/JAF,JavaMail是用于存取邮件服务器的一套API Java应用程序开源 通过javaMail来收发电子邮件 如项目组的向项目成员发邀请邮件 如用户登录忘记密码,通过邮件想注册用户发送密码 第9章 JavaMail利用JavaBeans Activation Framework (JAF)来处理MIME-编码的邮件附件。MIME的字节流可以被转换成Java对象,或者转换自Java对象。由此大多数应用都可以不需要直接使用 JAF。,49,1.4 JavaEE应用打包与部署,将一个JavaEE应用中的各个分离组件打包到一个单元(通常称为包)中,并将它部署到符合JavaEE规范的应用服务器上。 包(package)可以是以下三种单独的模块之一 .war Web模块 .jar EJB模块、应用程序模块 JAR 文件不仅用于压缩和发布,而且还用于部署和封装库、组件和插件程序, .rar 资源适配器模块 .ear 完整的JavaEE应用 一个打包过的JavaEE模块主要包括以下两类程序文件: JavaEE组件(例如企业beans,JSP页面,servlet等)程序文件 用于描述这些组件的配置描述文件,50,四种模块 web模块包:.war EJB模块包: .jar 应用程序客户端模块包 .jar 资源适配器模块: .rar 总的应用程序包: .ear 部署文件: web.xml-描述应用的web端组件 ejb-jar.xml-标准的J2EE部署描述,用来定制EJB组件. application.xml-标准的描述整个应用部署的xml文件 sun-j2ee-ri.xml-由EJB容器提供商来

温馨提示

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

评论

0/150

提交评论