1、 题目:一个数如果恰好等于它的因子之和,这个数就称题目:一个数如果恰好等于它的因子之和,这个数就称为为 完数完数。例如。例如6=123.编程编程 找出找出1000以内的所以内的所有完数。有完数。题目:有题目:有1、2、3、4四个数字,能组成多少个互不相同四个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?且无重复数字的三位数?都是多少?输入输入3个数个数a,b,c,按大小顺序输出。,按大小顺序输出。题目:某个公司采用公用电话传递数据,数据是四位的题目:某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下:每位数整数,在传递过程中是加密的,加密规则如下:每
2、位数字都加上字都加上5,然后用和除以然后用和除以10的余数代替该数字,再将第的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换。一位和第四位交换,第二位和第三位交换。题目:某个公司采用公用电话传递数据,数据是四位的题目:某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下:每位数整数,在传递过程中是加密的,加密规则如下:每位数字都加上字都加上5,然后用和除以然后用和除以10的余数代替该数字,再将第的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换。一位和第四位交换,第二位和第三位交换。J2EEJava 2 Platform Enterprise
3、 Edition-Java2平台企业版平台企业版Java EEJava Enterprise Edition1.1 Java EE 产生的背景产生的背景1.1.1企业应用程序的特点企业应用程序的特点1.1.2企业级应用程序体系结构企业级应用程序体系结构1)C/S三层结构三层结构2)B/S三层结构三层结构3)多层结构多层结构1.2 JavaEE的体系结构的体系结构1.2.1 JavaEE的多层体系结构的多层体系结构1.2.2 JavaEE是企业分布式应用的的开发标准是企业分布式应用的的开发标准1.2.3 支持支持JavaEE的厂商的厂商1.3 JavaEE的组件和容器的组件和容器1.3.1 J2
4、EE核心技术核心技术之组件技术之组件技术1.3.2 容器及类型容器及类型1.3.3 J2EE核心技术之核心技术之服务服务1.4 JavaEE应用打包与部署应用打包与部署小结小结1.5 JavaEE 体系结构的优点体系结构的优点问题问题1从从java语言的发展来看语言的发展来看问题问题2Java EE究竟是什么?究竟是什么?问题问题3为什么需要为什么需要 J2EE?1995年年,Sun公司推出公司推出Java技术。技术。十多年来,已发展成为全球第一大软件开发平台,是长时十多年来,已发展成为全球第一大软件开发平台,是长时间以来最卓越的程序设计语言。间以来最卓越的程序设计语言。特点:跨平台、面向对象
5、、多线程、半编译半解释等特点:跨平台、面向对象、多线程、半编译半解释等 1999年,年,Java从一种语言发展成为一种开发平台从一种语言发展成为一种开发平台,出现,出现Sun ONE体系结构,以体系结构,以Java语言为核心,包括以下三个语言为核心,包括以下三个版本:版本:J2SE StandardJ2ME MicroJ2EE Enterprise l2005年年8月,月,Java升级到升级到1.5版,版,SUN公司将公司将J2EE 1.5改名为改名为java EE 5,以前,以前J2EE版本还是称为版本还是称为J2EE。返回返回 JavaEE 不是编程语言!Java EE是一个标准中间件体系
6、结构Java EE是企业级分布式应用开发标准 返回返回 1.1.1企业应用程序的特点企业应用程序的特点 1.1.2企业级应用程序体系结构企业级应用程序体系结构 企业应用的特点(分布式、面向企业应用的特点(分布式、面向web、开发的、集成的、开发的、集成的、可移植、易于扩展和维护,企业计算具有一致性、事务可移植、易于扩展和维护,企业计算具有一致性、事务性、安全性等)决定了企业应用的体系结构性、安全性等)决定了企业应用的体系结构JavaEE集上述特性为一身!集上述特性为一身!目录目录 分布式分布式企业应用日常的运行环境企业应用日常的运行环境局域网局域网组织内部组织内部Internet连接分布在世界
7、各地的部门或者用户连接分布在世界各地的部门或者用户面向面向web 高速反应性高速反应性社会需求的瞬息万变社会需求的瞬息万变企业不断变更业务规则以适应企业不断变更业务规则以适应企业程序必须具备能力来及时适应需求的改变企业程序必须具备能力来及时适应需求的改变 安全性安全性系统安全可靠系统安全可靠正常运行正常运行合法用户经过合法途径使用合法用户经过合法途径使用(是否未经登录?是否直接录入网址?是否有权限?谁在运行?)(是否未经登录?是否直接录入网址?是否有权限?谁在运行?)事务性事务性两个或多个网络的计算机资源上访问并更新数据的时候不会错,一个程序要么进行一系列数据库操作成功完成,两个或多个网络的计
8、算机资源上访问并更新数据的时候不会错,一个程序要么进行一系列数据库操作成功完成,要么一点也不做,避免写到一半的时候出错要么一点也不做,避免写到一半的时候出错如如银行转账银行转账 可扩展性可扩展性潜在用户数量的不断膨胀潜在用户数量的不断膨胀应用性能要扩展应用性能要扩展企业的信息资源不断增长企业的信息资源不断增长系统功能的扩展系统功能的扩展系统的结构能否很容易在保留原有功能的基础上很容易扩展?开放性?插件?系统的结构能否很容易在保留原有功能的基础上很容易扩展?开放性?插件?集成化集成化旧系统的集成支持旧系统的集成支持不是白手起家不是白手起家目前很多企业的信息存放在老的或者过时的应用系统或者其它数据
9、库中(或不一定是java的或数据库的)遗产系统最大限度的利用以往信息或者历史信息仍具有保留价值如电厂运行资料,成绩库新老系统的集成、运行平台不同现有系统之间的集成现有系统之间的集成 可移植性、易维护可移植性、易维护返回返回 打开邮箱,将该页网址打开邮箱,将该页网址copy下来下来 再打开一个再打开一个IE浏览器,贴上该网址浏览器,贴上该网址返返回回1)C/S两层结构两层结构2)B/S三层结构三层结构3)多层结构多层结构客户层客户层(人机交互(人机交互/应用逻辑应用逻辑/数据访问)数据访问)l 安全性低:安全性低:客户端同DB服务器直连非法用户容易通过客户端入侵,l 部署困难部署困难胖客户端胖客
10、户端n客户端软件客户端软件 不是基于不是基于web的,只能适用在的,只能适用在LANn胖客户端:应用逻辑集中在客户端,胖客户端:应用逻辑集中在客户端,n安装耗时:需要每台客户端都安装客户端专用的应用程序安装耗时:需要每台客户端都安装客户端专用的应用程序n扩展更新困难:每次业务规则变化,都需要不断更新或重新安装客户端代码,重新部署客户端扩展更新困难:每次业务规则变化,都需要不断更新或重新安装客户端代码,重新部署客户端l 耗费系统资源耗费系统资源每个客户端程序都直连到每个客户端程序都直连到DB服务器,为每个客户端建立连接耗费服务器资源服务器,为每个客户端建立连接耗费服务器资源耗费资源耗费资源不适合
11、过多的用户不适合过多的用户服务层服务层(数据服务)(数据服务)Web浏览器Web服务器ServletHTTP 请求HTTP 应答Web浏览器Web服务器ServletHTTP 请求HTTP 应答客户端应用程序客户端应用程序数据库服务器数据库服务器返回返回 应用服务层应用服务层(业务逻辑)(业务逻辑)Web浏览器Web服务器ServletHTTP 请求HTTP 应答应用服务器应用服务器安全性高:安全性高:中间的应用层,隔离了客户端程序对数据服务器的直接访问,保护了数据安全部署容易部署容易瘦客户端瘦客户端客户层的功能大大削弱,原来由客户端实现的应用逻辑和数据访问等功能都迁移到服务器上实现了客户层的
12、功能大大削弱,原来由客户端实现的应用逻辑和数据访问等功能都迁移到服务器上实现了瘦客户瘦客户应用逻辑集中在服务器端应用逻辑集中在服务器端很多应用只需安装浏览器即可,基于很多应用只需安装浏览器即可,基于web的的快速响应快速响应通过中间件服务器的负载均衡和缓存数据能力,提高对客户端的响应速度通过中间件服务器的负载均衡和缓存数据能力,提高对客户端的响应速度易于扩展易于扩展每次业务规则变化,只需在应用服务器重新部署新服务器端组件,无需更新或重新安装每个客户端每次业务规则变化,只需在应用服务器重新部署新服务器端组件,无需更新或重新安装每个客户端客户层客户层(表示逻辑)(表示逻辑)数据层数据层(数据服务)
13、(数据服务)Web浏览器Web服务器ServletHTTP 请求HTTP 应答Web浏览器Web服务器ServletHTTP 请求HTTP 应答数据库服务器数据库服务器浏览器浏览器 应用服务层应用服务层(业务逻辑)(业务逻辑)Web浏览器Web服务器ServletHTTP 请求HTTP 应答应用服务器应用服务器数据库服务器数据库服务器返回返回 中间服务器又按应用逻辑划分成若干子层中间服务器又按应用逻辑划分成若干子层 应用服务器应用服务器Web浏览器Web服务器ServletHTTP 请求HTTP 应答Web表示层表示层客户层客户层数据层数据层(数据服务)(数据服务)Web浏览器Web服务器Se
14、rvletHTTP 请求HTTP 应答Web浏览器Web服务器ServletHTTP 请求HTTP 应答数据库服务器数据库服务器浏览器浏览器业务逻辑层业务逻辑层.目录目录 Web 服务器服务器客户客户客户层客户层业务逻辑层业务逻辑层企业信息系统层企业信息系统层数据层数据层数据库服务器邮件服务器浏览器浏览器HtmlApplet Web 服务器服务器表示层表示层(web层层)客户端应用程序客户端应用程序EJB 容器JSPServlet会话Bean实体Bean消息Bean应用服务器应用服务器数据库服务器数据库服务器Servlet典型的典型的JavaEE包括包括4层:层:客户层客户层 浏览器(html
15、、或者applet)桌面应用程序表示层(层)表示层(层)Servlet(Server+Applet)JSP(Java Server Page)业务逻辑层业务逻辑层 EJB(Enterprise Bean)企业信息系统层企业信息系统层 Database ERP 大型机事务处理 其它遗留信息系统 Entity Bean浏览器浏览器客户客户服务器服务器客户端客户端/服务器服务器端表示层端表示层服务器端服务器端商业逻辑商业逻辑企业信息企业信息系统系统域域服务服务应用应用表示表示持续化持续化客户应用容器WebcontainerEJB 容器DB Simple BeanSession BeanHtmlApp
16、let Web 服务器服务器JSPServlet服务器端应用服务器端应用 网上商店实现了商品浏览,用户可以进行订单查询,生网上商店实现了商品浏览,用户可以进行订单查询,生成订单以及删除订单等操作。成订单以及删除订单等操作。表示层表示层列出图书目录查询增删所购图书订单录入页面业务逻辑层业务逻辑层数据层数据层持久性,对应数据库中的表客户层客户层企业信息层企业信息层1.登录1.4.登录成功1.5.登录失败,提示注册或未找到用户2提交注册信息4.注册成功1.登录,检查用户的合法性实现安全登录2.新用户的注册3.用户密码遗忘后通过注册邮箱来重新获取向注册邮箱发邮件调JavaMail取客户的email地址
17、和密码Java EE是一个标准中间件体系结构 JavaEE 不是编程语言!不是编程语言!Java EE是企业分布式应用开发标准它规范了:分布式组件(分布式组件(JSP、Servlet、EJB)应该实现哪)应该实现哪些接口、提供哪些方法?些接口、提供哪些方法?容器应该提供的服务容器应该提供的服务 容器:分布式组件的运行环境 如Jsp运行在web容器中 EJB组件运行在EJB容器中 容器实现的服务:JDBC,JNDI,JMS消息服务等(详见后)JavaEE规范被众多中间件厂商所实现,不同厂家有不同的实现,但都遵规范被众多中间件厂商所实现,不同厂家有不同的实现,但都遵循同一循同一JavaEE规范,可
18、以互相部署规范,可以互相部署开放性。开放性。支持支持JavaEE的厂商和应用服务器的厂商和应用服务器 Sun 公司:公司:Sun One 服务器服务器 Netbeans自带的自带的GlassfishV2 服务器服务器内置内置Applicaition Server BEA的的weblogic IBM的的WebSpere JBoss开发环境开发环境NetBeans(内置应用服务器内置应用服务器GlassFishV2)+MySQLEclipse+MyEclipse+Tomcat+MySQL Web应用,不包括应用,不包括j2EEEclipse+MyEclipse+Jboss+MySQL 支持支持EJ
19、B目录目录 组件:组件:JavaEE基本的软件单元基本的软件单元面包面包 容器:分布式组件的运行环境容器:分布式组件的运行环境 烤箱烤箱容器为组件提供必需的底层基础功能容器为组件提供必需的底层基础功能服务服务 javaEE的容器由厂商实现,javaEE服务器中均包含Web容器和EJB容器的实现 如JDNI服务、JDBC、JMS、持久化、事务支持、并发、安全性、资源和生命周期管理 程序员根据特定应用需求编写组件,专注于业务逻辑程序员根据特定应用需求编写组件,专注于业务逻辑而不必困扰在复杂的企业应用环境而不必困扰在复杂的企业应用环境这些由容器实现了这些由容器实现了面包师:面包是什么配比,什么馅的,
20、什么形状的,口味如何,多高温度,多久不用管烤箱的安全防护机制、容量,电、温度的转换、定时器的控制 都是烤箱的事,而烤箱的控制是厂家实现的 组件和容器之间的交互组件和容器之间的交互部署描述文件 Web 服务器服务器Servlet部署描述文件Web.xmlEJB容器容器EJB部署描述文件ejb-jar.xml参见参见P28页页 第一个第一个servet的的web.xml我们编写我们编写First.java 这是一个这是一个servlet类,其实就是一个类,其实就是一个java类(类(P24)那么在那么在IE中如何访问它呢?中如何访问它呢?就是通过部署在就是通过部署在web服务器上的服务器上的web
21、.xml来知道的。来知道的。输入:输入:http:/localhost:8080/SimpleServlet/FirstWeb包容器,是Web应用程序的基本运行环境和框架。由web服务器实现Web应用程序,对应一个目录(或者网站),包括html、servlet、applet、jsp、图片等。3大组件大组件+服务服务1.Java Servlet 2.JSP JavaServer Pages 3.EJB Enterprise JavaBeans 服务:4.JDBC Java DataBase Connectivity 5.JNDI Java Naming and Directory Interfa
22、ce 6.JTA Java Transaction API lJAAS JJava Authentication and Authorization Service lJCA J2EE Connector Architecture J2EE Connector Architecture lJava PersistentlWeb service l XML 1.JMS Java Message Service API 2.RMI 3.Java IDL/CORBA 4.JavaMail/JAF JavaBeans Activation Framework 7.以前比较流行的说法:说J2EE包含了1
23、3种核心技术,如下(上面带星的),其实javaEE还不止如此,JDBC,JNDI,EJBs,RMI/JavaIDL,JSP,Javaservlets,XML,JMS/JTS,JTA,JavaMail/JAF 8.还包括还包括9.JAAS(java安全技术)、JCA(java连接框架技术)、Java Persistent(持久性)web service、JACC()、JSTL(java标准标记库JavaServer Pages Standard Tag Library)、JSF(java Server Face),JavaBean18般武艺无需样样精通,刀能杀人,枪也能杀人,掌握最基础的“无他,
24、唯手熟尔”卖油翁欧阳修lStruts Spring Hibernate 1)J2EE客户端组件客户端组件2)Web组件组件3)业务组件业务组件 Web客户端:客户端:Web Browser-DHTML,Applet:Java Plug-in 经web从服务器端下载,无需安装 java应用程序客户端:应用程序客户端:Swing,SWT,JFace,JavaBeans 需要安装(就是需要安装(就是java Application)返回返回通过通过HTTP协议对协议对web请求进行响应请求进行响应动态生成网页动态生成网页不包括不包括HTML,Applet和服务器端工具类和服务器端工具类 Servle
25、t(Server端的小程序),服务器端运行的程序,端的小程序),服务器端运行的程序,实际上就是一个实际上就是一个java类类 但是它能动态处理但是它能动态处理HTTP请求和并能返回响应(能生成网页)请求和并能返回响应(能生成网页)JSP:简化的,能在第一次运行的时候自动转换为简化的,能在第一次运行的时候自动转换为ServletHtml语言(页面呈现)语言(页面呈现)+嵌入嵌入java语言或指令(控制逻辑)语言或指令(控制逻辑)返回返回EJB 实现特定的应用逻辑实现特定的应用逻辑企业的算法、业务规则企业的算法、业务规则 而不是像而不是像web组件一样对客户端请求生成动态网页组件一样对客户端请求生
26、成动态网页 Session Bean(会话会话Bean)Message-Driven Bean(消息驱动消息驱动Bean)Entity Bean(实体实体Bean)目录目录 容器 容器是Java EE的运行环境,这种环境是为应用组件服务的 例如web容器 四类容器1.EJB容器容器2.Application Client容器容器3.Web容器容器4.Applet容器容器 容器 容器是Java EE的运行环境,这种环境是为应用组件服务的。各容器为相应类型的应用程序组件提供底层服务,如各矩形下半部的格子表示 四类容器四类容器 EJB容器容器 Application Client容器容器 Web容器
27、容器 Applet容器容器目录目录 J2EE容器容器 事务事务 状态管理状态管理 多线程多线程 资源池资源池 复杂的底层细节复杂的底层细节 容器服务容器服务 安全安全 事务管理事务管理 JNDI 远程连接远程连接 可配置的服务:如安全性可配置的服务:如安全性 不可配置的服务不可配置的服务 EJB和Servlet的生命周期、数据库连接池 数据持久性、J2EE平台API3大组件大组件+服务服务1.Java Servlet 2.JSP JavaServer Pages 3.EJB Enterprise JavaBeans 服务:4.JDBC Java DataBase Connectivity 5.
28、JNDI Java Naming and Directory Interface 6.JTA Java Transaction API lJAAS JJava Authentication and Authorization Service lJCA J2EE Connector Architecture J2EE Connector Architecture lJava PersistentlWeb service l XML 1.JMS Java Message Service API 2.RMI 3.Java IDL/CORBA 4.JavaMail/JAF JavaBeans Acti
29、vation Framework 7.以前比较流行的说法:说J2EE包含了13种核心技术,如下(上面带星的),其实javaEE还不止如此,JDBC,JNDI,EJBs,RMI/JavaIDL,JSP,Javaservlets,XML,JMS/JTS,JTA,JavaMail/JAF 8.还包括还包括JAAS(java安全技术)、JCA(java连接框架技术)、Java Persistent(持久性)web service、JACC()、JSTL(java标准标记库JavaServer Pages Standard Tag Library)、JSF(java Server Face),JavaB
30、ean18般武艺无需样样精通,刀能杀人,枪也能杀人,掌握最基础的“无他,唯手熟尔”卖油翁欧阳修lStruts Spring Hibernate 数据库访问几乎是所有企业应用都会用到的数据库访问几乎是所有企业应用都会用到的 JDBC提供了提供了java程序和数据库服务器之间的连接服务,程序和数据库服务器之间的连接服务,同时能保证事务的正常进行,同时能保证事务的正常进行,JDBC允许从允许从Java的方法里调用的方法里调用SQL命令命令,进行数据查询,进行数据查询 JDBC API为访问不同的数据库提供了一种统一的途径,为访问不同的数据库提供了一种统一的途径,使应用程序开发人员使用使应用程序开发人
31、员使用JDBC可以连接任何提供了可以连接任何提供了JDBC驱动程序的数据库系统,这样就使得程序员无需对特定的驱动程序的数据库系统,这样就使得程序员无需对特定的数据库系统的特点有过多的了解,大大简化和加快了开发数据库系统的特点有过多的了解,大大简化和加快了开发过程过程Java应用程序应用程序数据库数据库返回返回 JNDI是分布式系统的命名和目录服务对分布式系统中的资源(文件、分布式对象、服务)进行方便的访问和管理,允许组件定位其他组件和资源,提供了企业级应用所需要的资源和外部信息的注册、存储以及获取组件等功能 JNDI中,企业应用在命名环境(相当于电话簿)中注册,使用者通过JNDI来查找它 例:
32、电话购物拨电话无需管谁供货。厂家、门市、总部?怎么供 例:电话预约看病拨电话无需管人家的电话预约系统是如何管理和查询的 像公共电话簿,记录每个单位登记的电话号码。对于单位对象,有地址等属性可利用 许多J2EE组件的使用需要JNDI 的支持在在JMS、JMail、JDBC、EJB等技术中,大量应用这种技术等技术中,大量应用这种技术名字电话地址电话购物400-814协和医院116114崇文门属性名属性名属性值属性值DataSource在哪里?在哪里?EJB在哪里?在哪里?返回返回1.访问对象的基本方式1.凭借对象名称(name)与对象体(object)的绑定(binding),使用者通过上下文(c
33、ontext)来存取欲使用的对象2.命名服务系统示例 1.RMI注册表2.远程对象名远程对象3.DNS4.主机名称IP Address202.120.144.25.文件系统6.文件名或路径文件句柄 事务是一组原子(事务是一组原子(Atomic)操作的工作单元)操作的工作单元 以数据库存取的实例来说,就是一组SQL指令,这一组SQL指令必须全部执行成功,若因为某个原因未全部执行成功(例如其中一行SQL有错误),则先前所有执行过的SQL指令都会被撤消。如转账如转账 一个客户从一个客户从A A银行转账至银行转账至B B银行,要作的动作为从银行,要作的动作为从A A银行的账户扣款、银行的账户扣款、在在
34、B B银行的账户加上转账的金额,若已经从银行的账户加上转账的金额,若已经从A A转出,未到转出,未到B B,那么这,那么这钱究竟在哪里呢?钱究竟在哪里呢?两个动作必须成功,如果有一个动作失败,则两个动作必须成功,如果有一个动作失败,则此次转账失败。此次转账失败。银行银行B银行银行A100100100100lJTA保证数据读写的时候不会错,把这些关键的操作当成一系列保证数据读写的时候不会错,把这些关键的操作当成一系列完整的不可分割的操作完整的不可分割的操作事务(不能间断,成批完成)事务(不能间断,成批完成)当程序进行数据库操作时,要么全部成功完成(当程序进行数据库操作时,要么全部成功完成(com
35、mit)若中间中断,则一点也不完成(若中间中断,则一点也不完成(rollback)lJTA技术是由容器完成,减轻了开发者的负担技术是由容器完成,减轻了开发者的负担返回返回 早期的早期的java安全通过验证代码的来源和作者,安全通过验证代码的来源和作者,保护用户保护用户免受下载代码的攻击免受下载代码的攻击 JAAS通过验证谁在运行代码及其权限,来通过验证谁在运行代码及其权限,来保护系统保护系统免受免受用户的攻击用户的攻击 为为JavaEE应用程序提供一种途径来认证和授权一个企业应用程序提供一种途径来认证和授权一个企业应用用户或用户组应用用户或用户组 Java Authentication and
36、 Authorization Service返回返回 用于连接用于连接J2EE平台到平台到EIS(企业信息系统企业信息系统)的标准的标准APIEIS包括包括 ERP(企业资源计划Enterprise Resourse Program)大型机数据库处理 数据库系统 异构的、分布的 旧系统,数据仍旧需要访问的遗产系统legacy,不一定是标准的java程序或者数据库 JCA定义了一套安全的扩展的数据交互机制,解决现有定义了一套安全的扩展的数据交互机制,解决现有J2EE系统同其它类型系统的集成系统同其它类型系统的集成J2EE Connector Architecture J2EE Connector
37、返回返回 持久化:信息永久的存储到关系型数据库等永久介质中持久化:信息永久的存储到关系型数据库等永久介质中如账户信息,顾客信息,交易记录等等如账户信息,顾客信息,交易记录等等 持久化技术的发展史:持久化技术的发展史:1997年年-1998年:年:TopLink,CocoBase,ODMG1999年年-2001年:年:Entity Bean,JDO2002年年-2003年:年:TopLink,Hibernate,iBatis数据库层数据库层2004年:年:JDO稳步发展;稳步发展;Hibernate飞黄腾达飞黄腾达返回返回 Web services是建立可是建立可互操作互操作的分布式应用程序的新
38、的分布式应用程序的新平台平台。背景:背景:分布式组件的部署难度分布式组件的部署难度DCOM的困难的困难客户机和服务器通信协议的问题客户机和服务器通信协议的问题http与其他程序的互操作性和异构型与其他程序的互操作性和异构型 你可以用任何你喜欢的语言,在任何你喜欢的平台上写你可以用任何你喜欢的语言,在任何你喜欢的平台上写Web service 好东西大家一起分享好东西大家一起分享 只要我们可以通过只要我们可以通过Web service标准对这些服务进行查询标准对这些服务进行查询和访问。和访问。Web服务基于服务基于XML返回返回 XML是一种可以用来定义其它标记语言的语言。是一种可以用来定义其它
39、标记语言的语言。它被用来在不同的商务过程中共享数据它被用来在不同的商务过程中共享数据 如如J2EE中的配置文件均是中的配置文件均是XML格式的格式的返回返回 Java消息服务(消息服务(JavaMessage Service,JMS)是一个)是一个消息标准,它允许消息标准,它允许JavaEE应用程序组件产生、发送、接应用程序组件产生、发送、接收和读取消息收和读取消息 Java平台中关于面向消息中间件(平台中关于面向消息中间件(MOM)的)的API,用于,用于在两个应用程序之间,或分布式系统中发送消息,进行在两个应用程序之间,或分布式系统中发送消息,进行异步通信异步通信 返回返回 RMI协议调用
40、远程对象上方法,使用序列化方式在客户协议调用远程对象上方法,使用序列化方式在客户端和服务器端的对象之间传递数据。端和服务器端的对象之间传递数据。RMI使原先的程序在同一操作系统上的方法调用,变成使原先的程序在同一操作系统上的方法调用,变成了不同操作系统之间程序的方法调用。了不同操作系统之间程序的方法调用。RMI(Remote Method Invoke)是一种被是一种被EJB使用的更底使用的更底层的协议层的协议一个一个EJB可以通过可以通过RMI调用另一台机器上的调用另一台机器上的EJB远程方法远程方法返回返回 CORBA(Common Object Request Broker Archit
41、ecture)是一个分)是一个分布式对象体系结构,它独立于平台,也独立于语言。布式对象体系结构,它独立于平台,也独立于语言。在这个体系结构中,一个对象可以被本机上的客户或远程客户通过在这个体系结构中,一个对象可以被本机上的客户或远程客户通过方法激活来存取。客户(一个对象或应用)方法激活来存取。客户(一个对象或应用)无须知道无须知道被调用对象被调用对象(称为服务对象)的运行环境,(称为服务对象)的运行环境,也无须知道也无须知道实现这个对象的编程语实现这个对象的编程语言,客户只要知道服务对象的逻辑地址和提供的接口。言,客户只要知道服务对象的逻辑地址和提供的接口。这种互操作性的关键是这种互操作性的关
42、键是IDL(Interface Definition Language、接口定、接口定义语言),义语言),IDL说明对象接口中的方法,这些方法可以被其它对象说明对象接口中的方法,这些方法可以被其它对象(或应用)激活。(或应用)激活。返回返回 两者的关键差别在于语言环境,两者的关键差别在于语言环境,Java RMI是一个分布式是一个分布式对象计算的纯对象计算的纯Java解决方案解决方案(如,在如,在Java RMI中,对象中,对象的接口用的接口用Java定义,而不是用定义,而不是用IDL);CORBA没有定义安全服务,而没有定义安全服务,而Java RMI继承了继承了Java的的安全性;安全性;
43、CORBA有不同的实现,不同的独立软件开发商的不同实有不同的实现,不同的独立软件开发商的不同实现均有独特性,这使得在不同平台上的匹配比较困难,现均有独特性,这使得在不同平台上的匹配比较困难,而且不是所有而且不是所有CORBA产品开发商都支持所有平台,而几产品开发商都支持所有平台,而几乎所有平台都支持乎所有平台都支持Java虚拟机,因此虚拟机,因此Java RMI具有更高具有更高的可移植性。如果客户对象和服务对象都基于的可移植性。如果客户对象和服务对象都基于Java虚拟虚拟机,那么机,那么Java RMI是分布对象计算的最好选择。是分布对象计算的最好选择。最后,最后,IIOP已经提供了已经提供了
44、Java RMI和和CORBA的互操作能的互操作能力,而且两者的发展有互相借鉴的趋势。力,而且两者的发展有互相借鉴的趋势。JavaMail是用于存取邮件服务器的一套是用于存取邮件服务器的一套API Java应用程序开源应用程序开源 通过通过javaMail来收发电子邮件来收发电子邮件如项目组的向项目成员发邀请邮件如项目组的向项目成员发邀请邮件如用户登录忘记密码,通过邮件想注册用户发送密码如用户登录忘记密码,通过邮件想注册用户发送密码第第9章章 JavaMail利用利用JavaBeans Activation Framework(JAF)来处理来处理MIME-编码的邮件附件。编码的邮件附件。MI
45、ME的字节流可以被转的字节流可以被转换成换成Java对象,或者转换自对象,或者转换自Java对象。由此大多数应用对象。由此大多数应用都可以不需要直接使用都可以不需要直接使用 JAF。目录目录 将一个将一个JavaEE应用中的各个分离组件打包到一个单元应用中的各个分离组件打包到一个单元(通常称为包)中,并将它部署到符合(通常称为包)中,并将它部署到符合JavaEE规范的规范的应用服务器上。应用服务器上。包(包(package)可以是以下三种单独的模块之一)可以是以下三种单独的模块之一1.war Web模块模块2.jar EJB模块、应用程序模块模块、应用程序模块JAR 文件不仅用于压缩和发布,而
46、且还用于部署和封装库、组件和插件程序,3.rar资源适配器模块资源适配器模块4.ear 完整的完整的JavaEE应用应用 一个打包过的一个打包过的JavaEE模块主要包括以下两类程序文件:模块主要包括以下两类程序文件:JavaEE组件(例如企业组件(例如企业beans,JSP页面,页面,servlet等)等)程序文件程序文件 用于描述这些组件的配置描述文件用于描述这些组件的配置描述文件目录目录四种模块四种模块web模块包:模块包:.warEJB模块包模块包:.jar应用程序客户端模块包应用程序客户端模块包.jar资源适配器模块资源适配器模块:.rar 总的总的应用程序包应用程序包:.ear部署
47、文件:部署文件:web.xml-描述应用的web端组件 ejb-jar.xml-标准的J2EE部署描述,用来定制EJB组件.application.xml-标准的描述整个应用部署的xml文件sun-j2ee-ri.xml-由EJB容器提供商来填充的部署描述文件,包含具体实现的定制信息web.xmlejbjar.xml目录目录独立于硬件配置和操作系统独立于硬件配置和操作系统坚持面向对象的设计原则坚持面向对象的设计原则灵活性、可移植性和互操作性灵活性、可移植性和互操作性轻松的企业信息系统集成轻松的企业信息系统集成 从企业分布式应用的特点上来看,我们需要从企业分布式应用的特点上来看,我们需要Java
48、EE分布式面向web、多层结构、高速反应性、安全性(JAAS)、事务性(JTA)、可扩展性、集成化、可移植性、易维护-JavaEE不是一门编程语言,而是一个标准中间件体系结构,不是一门编程语言,而是一个标准中间件体系结构,基于组件、可重用的组件多层次统一的安全模型灵活的事务控制Web服务支持 典型的分为(表示层、业务逻辑层、数据层和企业信息层)典型的分为(表示层、业务逻辑层、数据层和企业信息层)JavaEE是企业分布式应用开发标准是企业分布式应用开发标准,核心思想是组件,核心思想是组件容器思想容器思想应用程序是由组件组成的,组件运行在容器中。JavaEE的三大组件技术:的三大组件技术:Serv
49、let、Jsp、EJB 容器是容器是Java EE的运行环境的运行环境容器有四种(Application Client容器、Applet容器、Web容器、EJB容器),负责实现复杂的安全、事务等工作,JavaEE的核心技术包括组件技术和容器的服务技术的核心技术包括组件技术和容器的服务技术 (Java Servlet、JSP、EJB、JDBC、JNDI、JTA、JAAS、JCA、Web service、XML、JMS、RMI Java IDL/CORBA、JavaMail/JAF)打包与部署打包与部署,JAR/WAR/EAR包包1熟悉分布式的多层应用开发模型熟悉分布式的多层应用开发模型2熟悉组件
50、的含义与各种组件类型熟悉组件的含义与各种组件类型3了解容器的含义与各种容器类型了解容器的含义与各种容器类型4熟悉各种熟悉各种JavaEE APIs5.了解打包与部署了解打包与部署6.熟悉熟悉JAR/WAR/EAR文件格式及相互文件格式及相互 区别区别 CSDN论坛论坛 http:/ http:/www.javaresearch.org/上面有很多原创文章,高手还是挺多的;Java开发者开发者 http:/ http:/ http:/ JavaEye http:/ 中文JAVA技术网 http:/- 代码中混代码中混合某种程序代码,由语言引擎解释执行程序代码。合某种程序代码,由语言引擎解释执行程