基于J2EE的软件开发讲义四川华迪信息技术有限公司Version1.02020/1/11Hwadee2Overview课程介绍J2SE基础及开发简介J2EE基础相关IDE简介JDBC简介Web开发---基于Servlet、JSP和Bean的B/S架构的软件系统实现设计模式框架的应用课程介绍2020/1/11Hwadee4关于本次课程课程目标预备知识目标听众日程表词汇表2020/1/11Hwadee5课程目标了解J2EE平台及其多层体系结构;明确Web层和业务层中servlet、JSP和bean的技术概念及JDBC数据库技术;掌握基于java的Web开发技术。2020/1/11Hwadee6预备知识了解J2SE知识了解Html、Xml及Javascript等Web知识了解设计模式2020/1/11Hwadee7目标听众高等院校和软件学院计算机专业同学有一定经验的Java程序员2020/1/11Hwadee8日程表共计:1.5天详细安排0:05课程介绍0:30J2SE基础及开发0:40J2EE基础0:40相关IDE简介0:40JDBC简介3:00Web开发---基于Servlet、JSP和Bean的B/S架构的软件系统实现0:20设计模式3:00框架的应用0:05问题&反馈Total:9.0hours2020/1/11Hwadee9词汇表Java、J2SE、J2EEServlet、JSP、Bean、XML分布式计算、B/S架构、Web、框架、设计模式J2SE基础及开发简介J2EE基础•j2EE概述•j2EE的结构、术语和特性•j2EE的核心技术2020/1/11Hwadee12j2EE概述1999年SunMicrosystems公司最先推出j2EE中以“企业”作为目标J2EE在J2SE平台之上增加大量企业级特性。而J2SE平台的重点则放在传统的桌面应用开发与部署上a,定义“企业”b,企业应用开发的考验和困难2020/1/11Hwadee13j2EE概述j2EE如何解决企业开发中的难点a、简单而统一的基于组件的结构b、内建的可伸缩性与安全性支持c、提供稳定和可靠的基础d、与企业信息系统和遗留系统的集成e、Web服务的内建支持f、独立于厂家和平台的可移植应用2020/1/11Hwadee14j2EE的结构、术语和特性j2EE的分布式多层应用模型客户层Web层中间层Web层业务层EIS层遗留系统EIS系统数据库2020/1/11Hwadee15j2EE的结构、术语和特性客户,组件,模块,容器和服务a,客户b,组件与模块c,容器与服务平台角色j2EE不同版本的演进2020/1/11Hwadee16j2EE的核心技术JDBC:JavaDataBaseConnectivityJNDI:JAVANAMINGANDDIRECTORYINTERFACEEJBS:ENTERPRISEJAVABEANSRMI:REMOTEMETHODINVOCATIONJSP:JAVASERVERPAGESJAVASERVLETSXML:EXTENSIBLEMARKUPLANGUAGEJMS:JAVAMESSAGINGSERVICEJAVAIDL:InterfaceDifinitionLanguageJTS:JAVATRANSACTIONSERVICEJTA:JAVATRANSACTIONARCHITECTUREJAVAMAILJAF:JAVABEANSACTIVATIONFRAMEWORK2020/1/11Hwadee17j2EE的核心技术JNDI:JAVANAMINGANDDIRECTORYINTERFACEJNDIAPI被用于执行命名和目录服务。它提供了一致的模型来存取和操作企业级的资源如DNS和LDAP,本地文件系统。命名服务为人类可读的名字与其对应的软件实体(如对象或组件)之间的关联提供灵活的机制。目录服务是命名服务的一个补充,它允许对象基于其属性来进行查找。前者允许对象按名称进行查找,后者允许对象基于其功能来进行查找。JNDIAPI由两部分组成:应用级接口和服务提供者接口(ServiceProviderInterface,SPI),前者用于应用组件访问命名服务和目录服务,后者用于将命名服务和目录服务提供者插入平台中。在JNDI中,在目录结构中的每一个结点称为CONTEXT。每一个JNDI名字都是相对于CONTEXT的。这里没有绝对名字的概念存在。对一个应用来说,它可以通过使用INITIALCONTEXT类来得到其第一个CONTEXT:CONTEXTCTX=NEWINITIALCONTEXT();2020/1/11Hwadee18j2EE的核心技术应用可以通过这个初始化的CONTEXT经有这个目录树来定位它所需要的资源或对象。例如,假设你在WEBLOGIC服务器中展开了一个EJB并将HOME接口绑定到名字MYAPP.MYEJB,那么该EJB的某个客户在取得一个初始化CONTEXT以后,可以通过以下语句定位HOME接口:MYEJBHOMEHOME=CTX.LOOKUP(MYAPP.MYEJB);在这个例子中,一旦你有了对被请求对象的参考,EJB的HOME接口就可以在它上面调用方法。以上关于JNDI的讨论只是冰山之一角而已。如果要更进一步地在CONTEXT中查找对象,JNDI也提供了一些方法来进行以下操作:将一个对象插入或绑定到CONTEXT。这在你展开一个EJB的时候是很有效的。从CONTEXT中移去对象。列出CONTEXT中的所有对象。创建或删除子一级的CONTEXT。2020/1/11Hwadee19j2EE的核心技术EJB:ENTERPRISEJAVABEANSJ2EE技术之所以赢得广泛重视的原因之一就是EJB。它们提供了一个框架来开发和实施分布式商务逻辑,由此很显著地简化了具有可伸缩性和高度复杂的企业级应用的开发。EJB规范定义了EJB组件在何时如何与它们的容器进行交互作用。容器负责提供公用的服务,例如目录服务、事务管理、安全性、资源缓冲池以及容错性。EJB规范定义了3种基本的BEAN类型:STATELESSSESSIONBEANS:提供某种单一的服务,不维持任何状态,在服务器故障发生时无法继续存在,生命期相对较短。例如,一个STATELESSSESSIONBEAN可能被用于执行温度转换计算。STATEFULSESSIONBEANS:提供了与客户端的会话交互,可以存储状态从而代表一个客户。典型例子是购物车。STATEFULSESSIONBEAN在服务器故障时无法继续生存,生命期相对较短。每一个实例只用于一个单个的线程。ENTITYBEANS:提供了一致性数据的表示--通常存放在数据库中--在服务器故障发生后能继续存在。多用户情况下可以使用EJB来表示相同的数据。ENTITYEJB的一个典型例子是客户的帐号信息。2020/1/11Hwadee20j2EE的核心技术尽管有以上的区别,所有的EJB还是有许多的共同之处。它们都处理HOMEINTERFACE。它定义了一个客户端是如何创建与消亡EJB的。可以在BEAN中对定义了客户端方法的远程接口进行调用;BEAN类则执行了主要的商务逻辑。如果一个EJB已经被开发了或者从第三方进行了购买,它就必须在应用服务器中进行发布。例如,WEBLOGICSERVER5.1带有一个EJBEPLOYERTOOL来协助处理EJB的发布。当你使用EJBDEPLOYERTOOL的时候,你要定义客户端所用的JNDI名字来定位EJB。DEPLOYERTOOL将生成WRAPPER类来处理和容器的通信以及在一个JAR文件中把被请求的JAVA类绑定在一起。一旦EJB被发布,客户端就可以使用它的JNDI名字来定位EJB。首先,它必须得到一个到HOME接口的REFERENCE。然后,客户端可以使用该接口,调用一个CREATE()方法来得到服务器上运行的某个BEAN实例的句柄;最后,客户端可以使用该句柄在BEAN中调用方法。2020/1/11Hwadee21j2EE的核心技术RMI:REMOTEMETHODINVOCATIONRMI协议是在远程对象上调用一些方法。它使用了连续序列方式在客户端和服务器端传递数据。RMI是一种被EJB使用的更下层的协议。2020/1/11Hwadee22j2EE的核心技术JAVAIDL/CORBAIDL:InterfaceDifinitionLanguage接口定义语言CORBA(公共对象请求代理机构)技术是一种异构型计算标准,他定义独立于平台和语言的分布式对象框架以及在该框架上运行的相关服务,与RMI编程规则兼容。IIOP:InternetInter-ORBProtocol互联网互联对象请求代理协议?在JAVAIDL的支持下,通过使用RMI-IIOP,开发人员可以将JAVA和CORBA集成在一起。他们可以创建JAVA对象并使之可在CORBAORB中展开,或者他们还可以创建JAVA类并作为和其它ORB一起展开的CORBA对象的客户。后一种方法提供了另外一种途径,通过它JAVA可以被用于将你的新的应用和LEGACY系统相集成。2020/1/11Hwadee23j2EE的核心技术JAVATRANSACTIONARCHITECTURE(JTAJava事务API)/JAVATRANSACTIONSERVICE(JTSJava事务服务)JTA定义了一种标准的API,应用系统由此可以存取各种事务监控。JTS是CORBAOTS(ObjectTRANSACTIONSERVICE对象事务服务)事务监控的基本的实现。JTS规定了事务管理器的实现方式。该事务管理器是在高层支持JAVATRANSACTIONAPI(JTA)规范,并且在较底层实现OMGOTSSPECIFICATION的JAVA映像。JTS事务管理器为应用服务器、资源管理器、独立的应用以及通信资源管理器提供了事务服务。2020/1/11Hwadee24j2EE的核心技术AVAMAILANDJAVABEANSACTIVATIONFRAMEWORKJAVAMAIL是用于存取邮件服务器的API,它提供了一套邮件服务器的抽象类。不仅支持SMTP服务器,也支持IMAP服务器。JAVAMAIL利用JAVABEANSACTIVATIONFRAMEWORK(JAF)来处理MIME-编码的邮件附件。MIME的字节流可以被转换成JAVA对象,或者转换自JAVA对象。由此大多数应用都可以不需要直接使用JAF。2020/1/11Hwadee25j2EE的核心技术JMS:JAVAMESSAGINGSERVICEJMS是用于和面向消息的中间件相互通信的应用程序接口(API)。它既支持点对点的域,有支持发布/订阅(PUBLISH/SUBSCRIBE)类型的域,并且提供对下列类型的支持:经认可的消息传递,事务型消息的传递,一致性消息和具有持久性的订阅者支持。JMS还提供了另一种方式来对您的应用与LEGACYBACKEND系统相集成。2020/1/11Hwadee26j2EE的核心技术XML:EXTENSIBLEMARKUPLANGUAGEXML是一种可以用来定义其它标记语言的语言。它被用来在不同的商务过程中共享数据。XML的发展和JAVA是相互独立的,但是,它和AVA具有的相同目标正是平台独立性。通过将JAVA和XML的组合,您可以得到一个完美的具有平台独立性的解决方案。目前正有许多不同的公司在为JAVA和XML的组合而努力。相关IDE简介—Eclipse与MyEclipse的结合—早期主流的JavaIDE---JBuilder—基于Eclipse平台的JBuilder20072020/1/11Hwadee28早期主流的JavaIDE---JBuilderUML可视化展示程序代码程序代码重