本系列教程适用于Java Web初学者、爱好者,小白白。我们的天赋并不高,可贵在努力,坚持不放弃。坚信量最终引发质变,厚积薄发。
文中白话居多,尽量以小白视角呈现,帮助大家快速入门。
我是 蜗牛老师,之前网名是 Ongoing蜗牛,人如其名,干啥都慢,所以更新也慢。希望大家多多支持,让我动力十足!
本文主要是介绍了 Java EE 平台到底有哪些内容:有容器、组件及众多 API。API 也就是应用程序接口(英语:Application Programming Interface,简称:API),又称为应用编程接口,就是软件系统不同组成部分衔接的约定。这些 API 可以帮助我们实现特定功能。在介绍了各种 API 后,我们可以知道 Java EE 中 API 众多,但是在入门学习阶段只有三个就够了。
我们先来看一下 Java EE 7 平台架构图,大家可以从图中看出什么吗?
从图中可以看出,整个平台分为两大块:客户端系统和 Java EE 服务。客户端系统有浏览器和应用客户端容器,Java EE 服务有 Web 容器和 EJB 容器。整个流程是通过 EJB 容器与数据库通信,也就是操作数据库进行增删改查数据。EJB 容器可以与 Web 容器协作,EJB 将业务处理的结果通过 Web 容器展示在浏览器中。而且 EJB 容器也可以直接与应用客户端容器协作展示界面。
在容器中有应用组件及众多的 API 服务,蓝色是 Java EE 7 中新增的 API 服务。而这些 API 服务和组件都是以 Java SE 为基础的。
所以,Java EE 平台是由一系列容器、应用组件和 API 服务组成的。
下图显示了 Java EE 容器之间的关系,我们一起来看一下。
Java EE 平台容器是一种软件容器,它提供了一种在虚拟机中运行应用程序的方式。Java EE 平台容器的主要作用是将 Web 组件、企业 Bean 或应用程序客户端装配至 Java EE 模块中,并部署至其容器中。根据组件构成,将 JavaEE 项目开发中的容器分为以下几类:Applet 容器、(ApplicationClient)应用客户端容器、Web 容器、EJB 容器 。
Applet 容器: 也就是小程序容器,管理 Applet 的执行。这个小程序并不是我们现在的微信、支付宝小程序。Java Applet(Java 小程序)是指从 Web 层接收的网页可以包含嵌入式小程序。 用 Java 编程语言编写,小程序是一个小客户端安装在浏览器。但是,客户端系统可能需要 Java 插件以及可能的安全策略文件,以便小程序成功在 Web 浏览器中执行。
常见的 Java Applet 应用包括嵌入 Flash、音频、视频、动画等多媒体元素,同时也可用于游戏、表单验证、图像处理等。在刚开始有网页的那个年代,大家学习 Java 的主要目的就是编写 Applet 程序,许多网站都使用 Java Applet 来实现动态效果、图形呈现、在线游戏等功能,例如知名的在线游戏“俄罗斯方块”正是基于 Java Applet 实现的。Flash 逐渐崛起,并取代了 Java Applet 成为 Web 浏览器中多媒体和动态效果的主要应用技术。同时,HTML5 和 CSS3 等 Web 技术的不断发展和完善,为 Web 开发人员提供了更丰富、更灵活的工具和技术方案,包括 canvas、SVG、WebGL 等,这些技术可以取代 Java Applet,实现更先进的图形和动画呈现效果。
所以目前,已经没有人再使用 Java Applet,大家知道有就行了。
应用客户端容器: 管理应用程序客户端组件的执行。应用程序客户端在用户的机器上运行,并提供一种处理需要比标记语言更丰富的界面的任务的方法。它通常具有由 Swing API 或 AWT API 创建的图形用户界面(GUI),但也可以使用命令行界面。大家不要忘记,Java 是可以开发桌面应用程序的。
应用程序客户端直接访问在业务层运行的企业 Bean。然而,如果应用程序需求允许,应用程序客户端可以打开 HTTP 连接,与运行在 Web 层的 Servlet 建立通信。用 Java 以外的语言编写的应用程序客户机可以与 Java EE 服务器交互,从而使 Java EE 平台能够与遗留系统、客户端和非 Java 语言进行互操作。
这个容器大家能懂则懂,理解不了,暂时也没啥关系。
Web 容器: 管理网页、Servlet 和一些的执行用于 Java EE 应用程序的 EJB 组件。Web 组件及其 容器在 Java EE 服务器上运行。Web 容器是给处于其中的应用程序组件(JSP、Servlet)提供一个环境,使得 JSP,Servlet 能直接和容器中的环境变量、接口交互而不必关注其他系统问题。主要是由 Web 服务器来实现,例如 Tomcat、WebLogic 和 Websphere 等。该容器提供的接口严格遵守 J2EE 规范中的 Web Application 标准 。
Web 容器是重点,我们需要将 Web 项目部署至 Web 容器中,这样才能进行访问。
EJB 容器: 管理 Java EE 企业 Bean 的执行应用。企业 Bean 及其容器在 Java EE 上运行服务器。
这个 EJB 容器,了解即可。
上述4个容器中我们要重点关注 Web 容器。
Java EE 应用程序由组件组成。Java EE 组件是一个自包含的功能软件单元,它与相关的类和文件一起组装到 Java EE 应用程序中,并与其他组件通信。
Java EE 规范定义了以下 Java EE 组件:
Java EE 组件也是用 Java 编程语言编写的,并以与该语言中的任何程序相同的方式进行编译。Java EE 组件和“标准” Java 类之间的区别在于,Java EE 组件被组装到 Java EE 应用程序中,它们被验证为结构良好且符合 Java EE 规范,并且它们被部署到生产环境中,在生产环境中由 Java EE 服务器运行和管理。
这里我们关注 Java Servlet 和 JSP 组件。
在 Web 容器、EJB 容器和应用程序客户端容器中有众多 API 服务。这些 API 服务可以帮助我们解决更加实际的一些问题。
(1)Web容器中 Java EE API
(2)EJB 容器中 Java EE API
(3)应用程序客户端容器中的 Java EE API
(1) Enterprise JavaBeans(了解即可)
Enterprise JavaBeans (EJB) 组件或企业 Bean 是一个代码体,它具有实现业务逻辑模块的字段和方法。您可以将企业 Bean 视为一个构建块,它可以单独使用,也可以与其他企业 Bean 一起使用,在 Java EE 服务器上执行业务逻辑。
企业 Bean 要么是会话 Bean,要么是消息驱动的 Bean。
Java EE 8 平台需要 Enterprise JavaBeans 3.2 和 Interceptors 1.2。拦截器规范是 EJB 规范的一部分。
(2) Java Servlet(非常重要)
Java Servlet 技术允许定义特定于 Http 的 Servlet 类。Servlet 类扩展了服务器的功能,这些服务器承载通过 请求-响应 编程模型访问的应用程序。虽然 Servlet 可以响应任何类型的请求,但它们通常用于扩展由 Web 服务器托管的应用程序。
在 Java EE 8 平台中,新的 Java Servlet 技术特性包括:
Java EE 8 平台需要 Servlet 4.0。
(3) JavaServer Faces(了解即可)
JavaServer Faces 技术是一个用于构建 Web 应用程序的用户界面框架。JavaServer Faces 技术的主要组成部分如下:
Java EE 8 平台需要 JavaServer Faces 2.3 和 Expression Language 3.0。
(4) JavaServer Pages(基本使用)
JavaServer Pages (JSP) 技术允许您将 Servlet 代码片段直接放入基于文本的文档中。JSP 页面是基于文本的文档,包含两种类型的文本:
Java EE 8 平台要求 JavaServer Pages 2.3 与早期版本兼容,但建议在新应用程序中使用 Facelets 作为显示技术。
(5) JavaServer Pages Standard Tag Library(按需使用)
JavaServer Pages 标准标记库(JSTL)封装了许多 JSP 应用程序通用的核心功能。不用在 JSP 应用程序中混合使用来自众多供应商的标记,而是使用单一的标准标记集。这种标准化允许您在任何支持 JSTL 的 JSP 容器上部署应用程序,并使标记的实现更有可能得到优化。
JSTL 具有用于处理流控制的迭代器和条件标记、用于操作 XML 文档的标记、国际化标记、用于使用 SQL 访问数据库的标记以及用于常用函数的标记。
Java EE 8 平台需要 JSTL 1.2。
(6) Java Persistence API(了解即可)
Java Persistence API (JPA) 是一种基于 Java 标准的持久性解决方案。持久性使用对象/关系映射方法来弥合面向对象模型和关系数据库之间的差距。Java Persistence API 还可以在 Java EE 环境之外的 Java SE 应用程序中使用。Java 持久化包括以下几个方面:
Java EE 8 平台需要 Java Persistence API 2.2。
(7) Java Transaction API(了解即可)
Java 事务 API (JTA) 为划分事务提供了一个标准接口。Java EE 体系结构提供了默认的自动提交来处理事务提交和回滚。自动提交意味着任何其他正在查看数据的应用程序将在每次数据库读写操作之后看到更新的数据。但是,如果应用程序执行两个相互依赖的独立数据库访问操作,您将希望使用 JTA API 来界定整个事务(包括这两个操作)开始、回滚和提交的位置。
Java EE 8 平台需要 Java Transaction API 1.2。
(8) Bean Validation(了解即可)
Bean 验证规范定义了用于验证 JavaBeans 组件中的数据的元数据模型和 API。可以在一个地方定义验证约束,并在不同的层之间共享它们,而不是在多个层(如浏览器和服务器端)上分布数据验证。
在 Java EE 8 平台中,新的 Bean 验证特性包括以下内容:
Java EE 8 平台需要 Bean Validation 2.0。
(9) JavaMail(了解即可)
Java EE 应用程序使用 JavaMail API 发送电子邮件通知。JavaMail API 有两个部分:
Java EE 平台包括带有服务提供者的 JavaMail API,该服务提供者允许应用程序组件发送 Internet 邮件。
Java EE 8 平台需要 JavaMail 1.6。
(10) WebSocket 的 Java API(目前了解)
WebSocket 是一种应用协议,它通过 TCP 在两个对等体之间提供全双工通信。用于 WebSocket 的 Java API 使 Java EE 应用程序能够使用注释创建端点,这些注释指定端点的配置参数并指定其生命周期回调方法。
Java EE 8 平台需要 WebSocket 1.1 的 Java API。
(11) Java数据库连接API(基本使用)
Java 数据库连接 (JDBC) API 允许您从Java编程语言方法调用 SQL 命令。当您使用会话 Bean 访问数据库时,您可以在企业 Bean 中使用 JDBC API。还可以使用来自 Servlet 或 JSP 页面的 JDBC API 直接访问数据库,而无需通过企业 Bean。
JDBC API 有两个部分:
Java EE 8 平台需要 JDBC 4.1。
(12) Java Naming and Directory Interface API(了解即可)
Java 命名和目录接口(JNDI) API 提供了命名和目录功能,使应用程序能够访问多个命名和目录服务,如 LDAP、DNS 和 NIS。JNDI API 为应用程序提供了执行标准目录操作的方法,例如将属性与对象关联以及使用其属性搜索对象。使用 JNDI, Java EE 应用程序可以存储和检索任何类型的命名 Java 对象,从而允许 Java EE 应用程序与许多遗留应用程序和系统共存。
平台有众多 API,这里只介绍了部分,大家有个基本印象就可以了。在入门阶段需要掌握的 API 是Servlet、JDBC、JSP。
Java EE 平台是由一系列容器、应用组件和API服务组成的。
Java EE 平台有 Applet 容器、(ApplicationClient)应用客户端容器、Web 容器、EJB 容器。
JavaEE 平台组件有:
Java EE 平台有众多 API,这里我们要重点学习和掌握 Servlet、JDBC、JSP 即可。