J2EE基础:j2ee所包含的13种核心技术
- 格式:pdf
- 大小:236.58 KB
- 文档页数:10
J2EE简介J2EE简介J2EE Java2平台企业版(Java 2 Platform,Enterprise Edition)J2EE是一套全然不同于传统应用开发的技术架构,包含许多组件,主要可简化且规范应用系统的开发与部署,进而提高可移植性、安全与再用价值。
J2EE核心是一组技术规范与指南,其中所包含的各类组件、服务架构及技术层次,均有共通的标准及规格,让各种依循J2EE架构的不同平台之间,存在良好的兼容性,解决过去企业后端使用的信息产品彼此之间无法兼容,导致企业内部或外部难以互通的窘境。
一、J2EE的概念目前,Java 2平台有3个版本,它们是适用于小型设备和智能卡的Java 2平台Micro版(Ja va 2 Platform Micro Edition,J2ME)、适用于桌面系统的Java 2平台标准版(Java 2 Platfor m Standard Edition,J2SE)、适用于创建服务器应用程序和服务的Java 2平台企业版(Java 2 Platform Enterprise Edition,J2EE)。
J2EE是一种利用Java 2平台来简化企业解决方案的开发、部署和管理相关的复杂问题的体系结构。
J2EE技术的基础就是核心Java平台或Java 2平台的标准版,J2EE不仅巩固了标准版中的许多优点,例如"编写一次、随处运行"的特性、方便存取数据库的JDBC API、CORBA技术以及能够在Internet应用中保护数据的安全模式等等,同时还提供了对EJB (Enterprise JavaBeans)、Java Servlets API、JSP(Java Server Pages)以及XML技术的全面支持。
其最终目的就是成为一个能够使企业开发者大幅缩短投放市场时间的体系结构。
J2体系结构提供中间层集成框架用来满足无需太多费用而又需要高可用性、高可靠性以及可扩展性的应用的需求。
J2EE——J2EE的⼗三种技术引⾔J2EE的⼗三种技术在⽹上⼀搜多的是,⽐如附录中的那篇⽂档就已经涵盖的很全了,但是作为应⽤级开发者并不⼀定要对这⼗三种技术都掌握,⽽且这⼗三种技术中哪些重要哪些不重要也存在⼀定的区别,所以我对⼀些重要的技术提炼出来放在概要⾥,⽅便读者快速掌握,⽽且学习也好有偏重概要这个也可以作为学习Java的路线,其实Java主要的技术包括Java基础部分,也就是⾯向对象,集合,界⾯,线程,⽂件以及⽹络;以及往⽹页⽅⾯⾛的JSP,Servlet,JS,其实如果读者接触过JSP和Servlet,就知道他们俩其实是⼀个东西,jsp其实最终也是会翻译成servlet,⼀个jsp会对应⼀个class;与数据库打交道的JDBC,Oracle;最后可以加上⼀个SSH,三⼤框架,⽤的还⽐较多除了上⾯说的常⽤的之后还有⼀些不常⽤的,⽐如JNDI,Java命名和⽬录接⼝,这个我们实际上⼀般只是⽤它,往往都不会⾃⼰去开发,感觉并不算重点另外EJB,企业级Java Bean,跟Hibernate很像,但有逐渐被Hibernate淘汰的趋势,其实这些技术都是存在⼀个演化过程,在原有的技术基础上改良⽽得,后⾯的SSH框架以及其他框架都是如此,针对某⼀⽅⾯的改良。
Java事务这块的技术,JTA和JTS,JTA是事务体系,JTS是事务服务,这个也是很底层的东西,应⽤级开发⽤的⽐较少,应⽤开发者⼀般只管⽤就⾏了附录J2EE的⼗三种技术(规范)Java数据库连接(JDBC) JDBC API以⼀个统⼀的⽅式访问各种数据库。
与ODBC类似,JDBC将开发者和私有数据库之间的问题隔离开来。
由于它建⽴在Java上,因此JDBC可以提供平台⽆关的数据库访问。
JDBC定义了4种不同的驱动,具体来说,包括有: 类型1:JDBC-ODBC桥 在JDBC刚产⽣时,JDBC-ODBC桥是⾮常有⽤的。
通过它,开发者可以使⽤JDBC来访问⼀个ODBC数据源。
J2EE的核心技术J2EE为设计、开发、装配和部署企业级应用程序提供了一个基于构件的解决方案。
使用J2EE可以有效地减少费用,快速设计和开发企业级的应用程序。
J2EE平台提供了一个多层结构的分布式的应用程序模型,该模型具有重用构件的能力、基于XML的数据交换、统一的安全模式和灵活的事务控制。
使用J2EE不仅可以更快地发布新的解决方案,而且独立于平台的特性让使用J2EE的解决方案不受任何提供商的产品和API的限制。
用户可以选择最合适自己的商业应用和所需技术的产品和构件。
(1)EJB。
EJB是Java服务器端的构件模型。
EJB容器作为EJB 构件的执行环境,提供服务器端的系统级功能,包括线程管理、状态管理和安全管理等。
EJB定义了访问构件服务的分布式客户接口模型,通过RMI-IIOP(Java Remote Method Invocation-Internet Inter-ORB Protocol),EJB可以同COBRA对象进行互操作。
使用Java开发的EJB 具有一次编写到处运行的优点,按照标准开发的EJB构件可以部署到任何一个支持EJB标准的应用服务器中。
使用EJB开发企业应用,可以缩短开发周期,开发人员只需要将注意力集中在业务逻辑的实现上,底层服务完全由EJB容器提供。
使用EJB开发的业务逻辑部分具有很好的移植性,不需要更改EJB的代码,开发人员能够将EJB从一种操作环境移植到另一种操作环境。
(2)JDBC。
JDBC是Java语言连接数据库的标准,从免费的MySQL 到企业级的DB2和Oracle, JDBC都提供了很好的接口。
JDBC API有两个部分,一个用来访问数据库的应用程序级的接口,另一个用来将JDBC驱动整合到J2EE平台中的服务提供商接口。
(3)Java Servlet(Java服务器端小程序)。
在Servlet技术中封装了HTTP协议,开发者不需要处理复杂的网络连接和数据包,就可以扩展Web服务器的功能。
J2EE 的13种核心技术(转载)Java 最初是在浏览器和 端的开发。
现在,随着对Ja 发企业级服 务器端解决方案客户端机器中粉墨登场的。
当时 va2平台企业版(J2EE )第三方 的 首选平台之一。
,很多人质疑它是否适合做服务器 支持的增多,Java 被广泛接纳为开J2EE 平台由一整套服务 Web 的多层应用提供了功能(Servi c es )、应用程序接口(支持。
APIs )和协议构成,它对开发基于在本文中我将解释支撑 servl e ts, XML, JMS, Java需要使用这些技术。
当然, J2EE 的13种核心技术:JDBC, JNIDL, JTS, JTA, JavaM a il 和我还要介绍这些不同的技术之间 DI, EJBs, RMI, JSP, Java JAF ,同时还 将描述在何时、何处是如何交互的。
此外,为了让您更好地感受J 2EE 的真Syste m s 公司的一种 广为应用的产品―环和J2EE 的新手,还是那些想了解J2E E能带定很有参考价值。
实应用,我将在We b Logi c 应用服务器―来自BEA 境下来介绍 这些技术。
不论对于W e bLog i c 应用服务器来什么好处的项目管理者和系统分析员,相信本文一宏观印象: 分布式结构和J2EE 过去,二层化应用 -- 通常被称为c l了典型的二层化结构。
在 很多情况下,服案中,客户端程序负责数据访问、实现业面、接受用户输入等。
clien t /serve r 结改进,而且经常基于某种 专有的协议―通辑非常困难。
更重要的是,在Web 时代,适应Int e rnet 的要求。
ient/serve r 应用 -- 是大家谈论的最多的。
图1刻画务 器提供的唯一服务就是数据库服务。
J2EE的13种核心技术J2EE(Java 2 Platform, Enterprise Edition)是一个为大企业主机级的计算类型而设计的Java平台。
Sun微系统(与其工业伙伴一起,例如IBM)设计了J2EE,以此来简化在瘦客户级环境下的应用开发。
下面是的关于J2EE的13种核心技术,欢送大家参考!一、宏观印象: 分布式结构和J2EE过去,二层化应用--通常被称为CLIENT/SERVER应用--是大家谈论的最多的。
在很多情况下,效劳器提供的唯一效劳就是数据库效劳。
在这种解决方案中,客户端程序负责数据访问、实现业务逻辑、用适宜的样式显示结果、弹出预设的用户界面、承受用户输入等。
CLIENT/SERVER结构通常在第一次部署的时候比拟容易,但难于升级或改良,而且经常基于某种专有的协议(通常是某种数据库协议)。
它使得重用业务逻辑和界面逻辑非常困难。
更重要的是,在WEB时代,二层化应用通常不能表达出很好的伸缩性,因而很难适应INTERNET的要求。
SUN设计J2EE的局部起因就是想解决二层化结构的缺陷。
于是J2EE定义了一套标准来简化N层企业级应用的开发。
它定义了一套标准化的组件,并为这些组件提供了完整的效劳。
J2EE还自动为应用程序处理了很多实现细节,如平安、多线程等。
用J2EE开发N层应用包括将二层化结构中的不同层面切分成许多层。
一个N层化应用A能够为以下的每种效劳提供一个分开的层:显示:在一个典型的WEB应用中,客户端机器上运行的浏览器负责实现用户界面。
动态生成显示: 尽管浏览器可以完成某些动态内容显示,但为了兼容不同的浏览器,这些动态生成工作应该放在WEB效劳器端进行,使用JSP、SERVLETS,或者XML(可扩展标记语言)和XSL(可扩展样式表语言)。
业务逻辑:业务逻辑适合用SESSION EJB(后面将介绍)来实现。
数据访问:数据访问适合用ENTITY EJB(后面将介绍)和JDBC 来实现。
13种物品:J2EE的13种核心技术(二)-j2ee疯狂代码 / ĵ:http://Java/Article6672.htmlML软件Software工程组织 Java Naming and Directory Interface (JNDI) JNDI API被用于执行名字和目录服务它提供了致模型来存取和操作企业级资源如DNS和LDAP本地文件系统后者在应用服务器中对象 在JNDI中在目录结构中每个结点称为context每个JNDI名字都是相对于context这里没有绝对名字概念存在对个应用来说它可以通过使用 InitialContext 类来得到其第个context: Context ctx = InitialContext; 应用可以通过这个化context经有这个目录树来定位它所需要资源或对象例如假设你在Weblogic服务器中展开了个EJB并将home接口绑定到名字 myApp.myEJB 那么该EJB某个客户在取得个化context以后可以通过以下语句定位home接口: MyEJBHome home = ctx.lookup( \"myApp.myEJB\" ); 在这个例子中旦你有了对被请求对象参考EJBhome接口就可以在它上面思路方法我们将在下面\"Enterprise Java Beans\"章节中做更多介绍 以上有关JNDI讨论只是冰山的角而已如果要更进步地在context中查找对象JNDI也提供了些思路方法来进行以下操作: 将个对象插入或绑定到context这在你展开个EJB时候是很有效 从context中移去对象 列出context中所有对象 创建或删除子级context 接下来我们要开始关注EJB了 Enterprise Java Beans (EJB) J2EE技术的所以赢得某体广泛重视原因的就是EJB它们提供了个框架来开发和实施分布式商务逻辑由此很显著地简化了具有可伸缩性和高度复杂企业级应用开发EJB规范标准定义了EJB组件在何时如何和它们容器进行交互作用容器负责提供公用服务例如目录服务、事务管理、安全性、资源缓冲池以及容错性 EJB规范标准定义了3中基本bean类型: Stateless session beans: 提供某种单服务不维持任何状态在服务器故障发生时无法继续存在生命期相对较短例如个stateless session bean可能被用于执行温度转换计算 Stateful session bean: T提供了和客户端会话交互可以存储状态从而代表个客户典型例子是购物车Stateful session bean在服务器故障时无法继续生存生命气相对较短每个例子只用于个单个线程 Entity beans: 提供了致性数据表示-- 通常存放在数据库中 -- 在服务器故障发生后能继续存在多用户情况下可以使用EJB来表示相同数据entity EJB个典型例子是客户帐号信息 尽管有以上区别所有EJB还是有许多共同的处它们都处理home erface它定义了个客户端是如何创建和消亡EJB可以在bean中对定义了客户端思路方法远程接口进行;bean类则执行了主要商务逻辑 描述EJB开发已经超出了本文范围但是如果个EJB已经被开发了或者从第 3方进行了购买它就必须在应用服务器中进行发布WebLogic Server 5.1带有个EJB Deployer Tool来协助处理EJB发布当你使用EJB Deployer Tool时候你要定义客户端所用JNDI名字来定位EJBDeployer Tool将生成wrapper类来处理和容器通信以及在个jar文件中把被请求Java类绑定在起 旦EJB被发布客户端就可以使用它JNDI名字来定位EJB首先它必须得到个到home接口reference然后客户端可以使用该接口个 create 思路方法来得到服务器上运行某个bean例子句柄;最后客户端可以使用该句柄在bean中思路方法 了解 EJB后让我们再来看JSP JavaServer Pages (JSPs) 我们中间可能已经有许多人已经熟悉MicrosoftActive Server Pages (ASP)技术了JSP和ASP相对应但更具有平台对立性他们被设计用以帮助Web内容开发人员创建动态网页并且只需要相对较少代码 即使Web设计师不懂得如何编程也可以使用JSPJSP应用是很方便 JSP页面由HTML代码和嵌入其中Java代码所组成服务器在页面被客户端所请求以后对这些Java代码进行处理然后将生成HTML页面返回给客户端浏览器 下面我们来看个JSP简单例子它只显示了服务器当前日期和时间虽然对语法具体解释已经超出了本文范围但我们还是可以很直观地看到Java代码被放在符号中间而Java表达式则放在符号的间 Date JSP sample The current date is . 您可能有时候听说过JHTML这是JSP以前种较老标准WebLogic服务器既可支持JSP又可支持JHTML请注意在缺省状况下JSP在WebLogic服务器中并没有处于有效状态要使的有效你可以编辑weblogic.properties文件如果Web服务器还没有处于有效状态则要先使的有效Servlet情况和JSP是样 下面是: Java servlets Java servlets servlet提供功能大多和JSP类似不过实现方式区别JSP通常是大多数HTML代码中嵌入少量Java代码而servlets全部由Java写成并且生成HTML servlet是种小型Java它扩展了Web服务器功能作为种服务器端应用当被请求时开始执行这和CGI Perl脚本很相似Servlets和CGI脚本个很大区别是:每个CGI在开始时候都要求开始个新进程 -- 而servlets是在servlet引擎中以分离线程来运行因此servlets在可伸缩性上提供了很好改进 在开发servlets时候您常常需要扩展javax.servlet.http.HttpServlet 类并且override些它思路方法其中包括: service: 作为dispatcher来实现命令-定义思路方法 doGet: 处理客户端HTTP GET请求 doPost: 进行HTTP POST操作 其它思路方法还包括处理区别类型HTTP请求 -- 可以参考HttpServlet API文档 以上描述是标准J2EE Servlet API各种思路方法WebLogic服务器提供了个该API完整实现途径旦你开发了个servlet你就可以在weblogic.properties 中加以注册并由此可以在WebLogic服务器中对它进行配置 通过Java servlets,我们已经到达了J2EE主要技术末尾了但J2EE所提供并不止于这些下面段落中我们将简要地看下现存些技术包括RMI, Java IDL和CORBA, JTA, 以及XML等等 Remote Method Invocation (RMI) 正如其名字所表示那样RMI协议是在远程对象上些思路方法它使用了连续序列方式在客户端和服务器端传递数据RMI是种被EJB使用更下层协议 Java IDL/CORBA 在Java IDL支持下开发人员可以将Java和CORBA集成在起 他们可以创建Java对象并使的可在CORBA ORB中展开, 或者他们还可以创建Java类并作为和其它ORB起展开CORBA对象客户后种思路方法提供了另外种途径通过它Java可以被用于将你新应用和legacy系统相集成 Java Transaction Architecture (JTA)/Java Transaction Service (JTS) JTA定义了种标准API应用系统由此可以存取各种事务监控 JTS是CORBA OTS事务监控基本实现JTS规定了事务管理器实现方式该事务管理器是在高层支持Java Transaction API (JTA)规范标准并且在较底层实现OMG OTS specicationJava映像JTS事务管理器为应用服务器、资源管理器、独立应用以及通信资源管理器提供了事务服务 JavaMail and JavaBeans Activation Framework JavaMail是用于存取邮件服务器API它提供了套邮件服务器抽象类不仅支持SMTP服务器也支持IMAP服务器 JavaMail利用JavaBeans Activation Framework (JAF)来处理MIME-编码邮件附件MIME字节流可以被转换成Java对象或者转换自Java对象由此大多数应用都可以不需要直接使用JAF Java Messaging Service (JMS) JMS是用于和面向消息中间件相互通信应用接口(API)它既支持点对点域有支持发布/订阅(publish/subscribe)类型域并且提供对下列类型支持:经认可消息传递,事务型消息传递致性消息和具有持久性订阅者支持JMS还提供了另种方式来对您应用和legacy backend系统相集成 Extensible Markup Language (XML) XML是种可以用来定义其它标记语言语言它被用来在区别商务过程中共享数据XML发展和Java是相互独立但是它和Java具有相同目标正是平台独立性通过将Java和XML组合您可以得到个完美具有平台独立性解决方案目前正有许多区别公司在为Java和XML组合而努力如果要了解更多这方面信息可以访问SunJava-XML页面或者IBM developerWorksXML Zone 2009-2-12 5:25:26疯狂代码 /。
J2EE核心技术支撑J2EE的13种核心技术:JDBC,JNDI,EJB,RMI,JSP,JavaServlets,XML,JMS,JavaIDL,JTS,JTA,JavaMail和JAF。
下边我们简单的介绍一下。
(1) JDBC(Java Data Base Connectivity,java数据库连接)JDBC以一种统一的方式来对各种各样的数据库进行存取。
和ODBC一样,JDBC 为开发人员隐藏了不同数据库的不同特性。
另外,由于JDBC建立在Java的基础上,因此还提供了数据库存取的平台独立性。
JDBC定义了4种不同的驱动程序:JDBC-ODBC Bridge、JDBC- native driver bridge、JDBC-network bridge、PureJavadriver。
在一个多层的企业级应用中,更大的可能是在客户端和一个EJB进行通信,采用EJB建立数据库连接。
为了实现和改进可伸缩性和系统性能,也可以采用连接缓冲池(connection pool)优化数据库连接。
(2) JNDI(Java Naming and Directory Interface,Java命名和目录接口)JNDI API被用于执行名字和目录服务。
它提供了一致的模型来存取和操作企业级的资源如DNS和LDAP,本地文件系统,后者在应用服务器中的对象。
在JNDI 中,在目录结构中的每一个结点称为context。
每一个JNDI名字都是相对于context的。
应用可以通过这个初始化的 context经有这个目录树来定位它所需要的资源或对象。
(3) EJB (Enterprise JavaBean)EJB提供了一个框架来开发和实施分布式商务逻辑,由此很显著地简化了具有可伸缩性和高度复杂的企业级应用的开发。
EJB规范定义了EJB组件在何时如何与它们的容器进行交互作用。
容器负责提供公用的服务,例如目录服务、事务管理、安全性、资源缓冲池以及容错性。
J2EE想必大家都不陌生吧,貌似现在更流行将其称作JavaEE,不管名字怎么变,核心和思想是没有变的。
学习J2EE首先要了解它的规范,下面我们一起看看它的十三个规范。
1,JDBC(Java Database Connectivity)用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。
个人理解:跟微软的ODBC很像,应该说是ODBC和ADO的结合。
可以理解为面向对象的ODBC,毫无疑问,面向对象的接口对于Java程序员来说更容易理解。
ODBC把简单功能跟高级功能放到了一起,相对来说比较难学,而JDBC 尽量保证简单功能的简便性,同时又可以在需要的时候使用高级功能。
JDBC针对Java的风格和优点进行了优化,让我们在使用时更加得心应手。
2,JNDI(Java Name and Directory Interface)Java应用中访问命名和目录服务的API。
命名服务将名称和对象联系起来,使得我们可以用名称访问对象。
个人理解:JNDI是为了对高级网络应用开发中使用的目录基础结构进行访问。
这个目录其实是一个特殊的数据库,提供了对存储数据的快速访问,不象传统的目录服务访问方式那样必须提供不同的API接口去访问不同的目录服务(如:LDAP,NIS,ADS等),它统一了不同类型目录访问的接口。
JDNI与JDBC都构建在抽象层上。
3,EJB(Enterprise Javabean)EJB是sun的服务器端组件模型,设计目标与核心应用是部署分布式应用程序。
EJB是Java的核心代码,分别是会话Bean(Session Bean),实体Bean(Entity Bean)和消息驱动Bean(MessageDriven Bean)。
个人理解:EJB是J2EE被程序员广泛运用的一大功臣,是J2EE的核心。
EJB提供了一个框架来开发和实施分布式商务逻辑,从而大大简化了开发高复杂度、易扩展企业应用的难度。