Java EE平台是一个实现了Java EE应用程序标准的宿主平台。
J2EE技术框架可以分为3部分:组件技术、服务技术和通信技术。
一、应用组件
1.Java EE必须支持的四种应用组件类型:
a. 应用客户端组件,通常是在桌面计算机上执行的 GUI 程序。
b. Applet组件
c. Servlet,JSP 页面
d. EJB 组件
2.Java EE产品通常都为每种应用组件类型提供一个容器:应用客户端容器,applet 容器,web 容器和企业 bean 容器。
3.容器为Java EE应用程序组件提供了运行时支持。Java EE容器的底层是它所属的服务器,Java EE服务器为符合标准的应用程序组件提供部署,管理和运行的支持。
二、标准服务
1.HTTP
2.HTTPS
3.Java Transaction API(JTA)
它包括事务管理器(Transaction Manager)和一个或多个支持 XA 协议的资源管理器( Resource Manager )两部分,我们可以将资源管理器看做任意类型的持久化数据存储;事务管理器则承担着所有事务参与单元的协调与控制。
4.RMI-IIOP
Java EE应用可以使用RMI‐IIOP(支持 IIOP)来访问兼容RMI编程限制的CORBA服务.
5.Java IDL
可以让Java EE应用组件调用外部的使用IIOP协议的CORBA对象。
6.JDBC API
JDBC API 是与关系数据库系统进行连接的 API。
7.Jav Persistence API
Java 持久化 API 是持久化管理和 O/R 映射的标准 API。
8.Java 消息服务(JMS)
9.Java 命名和目录接口(JNDI)
JNDI API有两个部分:由访问命名和目录服务的应用组件使用者接口和目录服务提供者接口组成。
10.JavaMail
11.JavaBean Activation Framework(JavaBean活动框架,JAF)
JAF是一个专用的数据处理框架,它用于封装数据,并为应用程序提供访问和操作数据的接口。JAF的主要作用是让java应用程序知道如何对一个数据源进行查看、编辑和打印等操作。
JAF API为处理不同MIME类型、来自不同的格式和位置的数据提供了一个框架。
12.java XML Processing(JAXP,java XML处理)
1)JAXP提供了对用于解析XML文档的StAX,SAX和DOM API的支持,也支持XSLT转换引擎。
2)JAXP, JAXB, SAX, StAX, DOM等名词解释
SAX(Simple API for XML)和DOM(Document Object Model)最先出来的两种解析器。
DOM的特点是,把整个XML内容读取内存中进行处理,是一种tree-based API。
优点:可以随机进行对某个节点内容进行读取和写入。缺点:耗费内存,性能差。
SAX不是一次把所有XML内容读取进来,而是进行一行一行的读取。每读取一行,就处发事件,处理这行的内容,是event-based API。
优点:处理速度快,节省内存。缺点:不能再次读取已经读过的内容,而且只能进行读,不能进行写。
适用于只扫描一次XML内容,就能提取想要的数据的场合。
StAX(Streaming API for XML):StAX解析器是最后出来的解析器,被认为比前两种都好,也是event-based API。
StAX既可进行读,也可以进行写。
优点:处理速度快,节省内存,可进行读写。缺点:不能再次读取已经读过的内容。
适用于只扫描一次XML内容,就能提取想要的数据的场合。
JAXB:JAXB是Java Architecture for XML Binding的缩写。可以将一个Java对象转变成为XML,或把XML转换成Java对象。。
JAXP是JAXB读取过程中的一部分,JAXB默认的XML解析器就是StAX。
可扩展样式表转换语言(Extensible Stylesheet Language Transformations,XSLT)是一种样式转换标记语言,可以将XML数据档转换为另外的XML或其它格式,如HTML网页,纯文字。
13.JCA(J2EE 连接器架构,Java Connector Architecture)
JCA的目标在于企业应用程序集成方面,它提供的标准化体系结构让J2EE组件能够对异构EIS进行“即插即用”的访问,其中包括ERP、事务处理、老式数据库系统等。
14.Security Services
Java认证和授权服务(Java Authentication and Authorization Service,简称JAAS),允许服务验证并强制对用户进行访问控制。JAAS实现了Java技术版本的标准可插拔验证模块(PAM)框架。
Java容器授权协议(Java Authorization Contract for Containers,简称JACC),JACC使用JAAS API,可将基于Java权限的安全模型扩展到EJB和Servlet。
Java容器认证服务提供者接口(Java Authentication Service Provider Interface for Containers,JASPIC)提供了更易于使用的SPI,用于验证Web应用程序的用户并定义身份存储API用于身份验证和授权。
15.Websevice
J2ee包括三种WebService 规范,分别是JAXM&SAAJ、JAX-WS(JAX-RPC)、JAX-RS。
1)JAX-WS(Java API For XML-WebService):
JAX-WS,其底层支持为JAXB。JAX-WS和JAX-RPC都使用SOAP/HTTP协议。JAX-RPC目前已经被JAX-WS规范取代。
JAX-WS(JSR 224)规范的API 位于javax.xml.ws.*包。
WS-MetaData(JSR 181)是JAX-WS 的依赖规范,其API 位于javax.jws.*包,使用注解配置公开的Web 服务的相关信息和配置SOAP消息的相关信息。
2)JAXM&SAAJ:
JAXM(JAVA API For XML Message)主要定义了包含了发送和接收消息所需的API,相当
于Web服务的服务器端,其API位于javax.messaging.*包,它是JAVA EE的可选包,因此
你需要单独下载。
SAAJ(SOAP With Attachment API For Java)是与JAXM 搭配使用的API,为构建
SOAP包和解析SOAP包提供了重要的支持,支持附件传输,它在服务器端、客户端都需要
使用。这里还要提到的是SAAJ规范,其API位于javax.xml.soap.*包。
JAXM&SAAJ与JAX-WS都是基于SOAP的Web服务,相比之下JAXM&SAAJ暴漏了SOAP
更多的底层细节,编码比较麻烦,而JAX-WS更加抽象,隐藏了更多的细节,更加面向对
象,实现起来你基本上不需要关心SOAP的任何细节。那么如果你想控制SOAP消息的更
多细节,可以使用JAXM&SAAJ。
3)JAX-RS:
JAX-RS是JAVA针对REST(Representation State Transfer)风格制定的一套Web 服务规范,
其API位于javax.ws.rs.*包。
16.SPI
1)SPI全称为Service Provider Interface,是JDK内置的一种服务提供发现机制。
Java提供了很多服务提供者接口(Service Provider Interface,SPI),允许第三方为这些接口提供实现。
常见的SPI有JDBC、JCE、JNDI、JAXP和JBI等。
2)Java SPI,需要遵循如下约定:
1、当服务提供者提供了接口的一种具体实现后,在jar包的META-INF/services目录下创建一个以“接口全限定名”为命名的文件,内容为实现类的全限定名;
2、接口实现类所在的jar包放在主程序的classpath中;
3、主程序通过java.util.ServiceLoder动态装载实现模块,它通过扫描META-INF/services目录下的配置文件找到实现类的全限定名,把类加载到JVM;
4、SPI的实现类必须携带一个不带参数的构造方法;
17.其他
JAXR(Java API for XML Registries)提供了与多种类型注册服务进行交互的API。JAXR运行客户端访问与JAXR规范相兼容的Web Servcices,这里的Web Services即为注册服务。
JSF(JavaServer Faces)它是一个基于服务器端组件的用户界面框架。 它用于开发Web应用程序。 它提供了一个定义良好的编程模型,由丰富的API和标签库组成。
CDI&DI(Context and Dependency Injection) 注入标准。
JCE(Java Cryptography Extension) 是一组包,它们提供用于加密、密钥生成和协商等算法的框架和实现。
JSONB JSON绑定API,用于在JSON文本和Java对象之间进行映射
JSONP JSON处理API
Batch
Bean Validation
Concurrency Utilities
Management
Connectors
三、13个规范
1、JDBC:(Java Data Base Connectivity,java数据库连接)
2、JNDI:(Java Naming and Directory Interface,Java命名和目录接口)
3、EJB:(Enterprise Java Beans,企业级Java Beans)
4、RMI:(Remote Method Invocation,远程方法调用)
5、Java IDL/CORBA:(Java Interface Definiyion Language/Common Object Request Broker Architecture ,Java接口定义语言/公用对象请求代理程序体系结构)
6、JSP:(Java Server Pages,Java服务器页面)
7、Servlets:(Server Applet,全称Java Servlet)
8、XML:(Extensible Markup Language,可扩展标记语言)
9、JMS:(Java Message Service,Java消息服务)
10、JTA:(Java Transaction API,Java事务API)
11、JTS:(Java Transaction Service,Java事务服务)
12、JavaMail
13、JAF:(JavaBeans Activation Framework,JavaBeans活动框架)