【JavaEE基础学习打卡03】Java EE 平台有哪些内容?

目录

  • 前言
  • 一、Java EE平台说明
  • 二、Java EE平台容器及组件
    • 1.平台容器
    • 2.平台组件
  • 三、JavaEE平台API服务
    • 1.API服务概览
    • 2.平台API
  • 总结


前言

📜 本系列教程适用于Java Web初学者、爱好者,小白白。我们的天赋并不高,可贵在努力,坚持不放弃。坚信量最终引发质变,厚积薄发。
🚀 文中白话居多,尽量以小白视角呈现,帮助大家快速入门。
🎅 我是 蜗牛老师,之前网名是 Ongoing蜗牛,人如其名,干啥都慢,所以更新也慢。希望大家多多支持,让我动力十足!

本文主要是介绍了 Java EE 平台到底有哪些内容:有容器、组件及众多 API。API 也就是应用程序接口(英语:Application Programming Interface,简称:API),又称为应用编程接口,就是软件系统不同组成部分衔接的约定。这些 API 可以帮助我们实现特定功能。在介绍了各种 API 后,我们可以知道 Java EE 中 API 众多,但是在入门学习阶段只有三个就够了。


一、Java EE平台说明

我们先来看一下 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平台容器及组件

1.平台容器

下图显示了 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 容器。

2.平台组件

Java EE 应用程序由组件组成。Java EE 组件是一个自包含的功能软件单元,它与相关的类和文件一起组装到 Java EE 应用程序中,并与其他组件通信。

Java EE 规范定义了以下 Java EE 组件:

  • 应用程序客户端和 Applet 是在客户机上运行的组件。
  • Java Servlet、JavaServer Faces 和 JavaServer Pages (JSP) 技术组件是运行在服务器端的 Web 组件。
  • EJB 组件(企业 Bean)是运行在服务器上的业务组件。

Java EE 组件也是用 Java 编程语言编写的,并以与该语言中的任何程序相同的方式进行编译。Java EE 组件和“标准” Java 类之间的区别在于,Java EE 组件被组装到 Java EE 应用程序中,它们被验证为结构良好且符合 Java EE 规范,并且它们被部署到生产环境中,在生产环境中由 Java EE 服务器运行和管理。

这里我们关注 Java Servlet 和 JSP 组件。

三、JavaEE平台API服务

1.API服务概览

在 Web 容器、EJB 容器和应用程序客户端容器中有众多 API 服务。这些 API 服务可以帮助我们解决更加实际的一些问题。

(1)Web容器中 Java EE API

在这里插入图片描述

(2)EJB 容器中 Java EE API

在这里插入图片描述

(3)应用程序客户端容器中的 Java EE API

在这里插入图片描述

2.平台API

(1) Enterprise JavaBeans(了解即可)

Enterprise JavaBeans (EJB) 组件或企业 Bean 是一个代码体,它具有实现业务逻辑模块的字段和方法。您可以将企业 Bean 视为一个构建块,它可以单独使用,也可以与其他企业 Bean 一起使用,在 Java EE 服务器上执行业务逻辑。

企业 Bean 要么是会话 Bean,要么是消息驱动的 Bean。

  • 会话 Bean表示与客户端的短暂对话。当客户端完成执行时,会话 Bean 及其数据将消失。
  • 消息驱动 Bean 结合了会话 Bean 和消息侦听器的特性,允许业务组件异步接收消息。通常,这些消息是 Java 消息服务(JMS)消息。

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 技术特性包括:

  • 服务器推送
  • HTTP Trailer

Java EE 8 平台需要 Servlet 4.0。

(3) JavaServer Faces(了解即可)

JavaServer Faces 技术是一个用于构建 Web 应用程序的用户界面框架。JavaServer Faces 技术的主要组成部分如下:

  • GUI 组件框架。
  • 用于以不同类型的 HTML 或不同标记语言和技术呈现组件的灵活模型。对象生成标记以呈现组件,并将存储在模型对象中的数据转换为可以在视图中表示的类型。渲染器
  • 生成 HTML 4.01 标记的标准。

Java EE 8 平台需要 JavaServer Faces 2.3 和 Expression Language 3.0。

(4) JavaServer Pages(基本使用)

JavaServer Pages (JSP) 技术允许您将 Servlet 代码片段直接放入基于文本的文档中。JSP 页面是基于文本的文档,包含两种类型的文本:

  • 静态数据,可以用任何基于文本的格式表示,例如 HTML 或 XML
  • 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 持久性 API
  • 查询语言
  • 对象/关系映射元数据

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 SE 8 中的新特性,例如 Date-Time API
  • 增加了新的内置 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 有两个部分:

  • 应用程序组件用来访问数据库的应用程序级接口
  • 将 JDBC 驱动程序附加到 Java EE 平台的服务提供程序接口

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 平台组件有:

  • 应用程序客户机和 applet 是在客户机上运行的组件。
  • Java Servlet、JavaServer Faces 和 JavaServer Pages (JSP) 技术组件是运行在服务器端的 Web 组件。
  • EJB 组件(企业 Bean)是运行在服务器上的业务组件。

Java EE 平台有众多 API,这里我们要重点学习和掌握 Servlet、JDBC、JSP 即可。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/41131.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用CLI添加磁盘到VM

登录 https://portal.azure.com/#home,点击右上角的控制台图标 ,打开CLI 在控制台中输入如下指令,在NetworkWatcherRG创建一个名字为TEST的虚拟机,使用的镜像是Win2019datacenter,username是aaa,password是1234567890A…

mysql的快速复习 和一些思考记录

数据库设计 第一范式:有主键,具有原子性,字段不可分割 数据库表中不能出现重复记录,每个字段是原子性的不能再分 关于第一范式,每一行必须唯一,也就是每个表必须有主键。 每一列不可再分!&#…

okhttp源码简单流程分析

拦截器详细解析可以看大佬简书 "https://www.jianshu.com/p/6fac73f7570f"和 “https://www.jianshu.com/p/3c740829475c” okhttp请求流程 1:OkHttpClient okHttpClient new OkHttpClient.Builder() 构建一个okhttpClient对象,传入你想传入的…

vector使用以及模拟实现

vector使用以及模拟实现 vector介绍vector常用接口1.构造2.迭代器3.容量4.增删查改5.练习 vector模拟实现1.迭代器失效2.反向迭代器3.完整代码 vector介绍 和我们原来讲的string不同&#xff0c;vector并不是类&#xff0c;是一个类模板&#xff0c;加<类型>实例化以后才…

主机防护的重要性和方式

01 主机防护的重要性 主机防护是网络安全的重要组成部分。在互联网时代&#xff0c;网络攻击成为了一种常见的威胁&#xff0c;而主机防护则是保护计算机系统免受网络攻击的重要手段。 主机防护可以防范各种网络攻击&#xff0c;如病毒、木马、黑客攻击等&#xff0c;从而保…

气象监测站:用科技感知气象变化

气象监测站是利用科学技术感知当地小气候变化情况的气象观测仪器&#xff0c;可用于农业、林业、养殖业、畜牧业、环境保护、工业等多个领域&#xff0c;提高对环境数据的利用率&#xff0c;促进产业效能不断提升。 气象监测站主要由气象传感器、数据传输系统、电源系统、支架…

Linux debian12解压和压缩.rar文件教程

一、Debian12安装rar命令 sudo apt install rar二、使用rar软件 1.解压文件 命令格式&#xff1a; rar x 文件名.rar实力测试&#xff1a; [rootdoudou tmp]# rar x test.rar2.压缩文件 test是一个文件夹 命令格式&#xff1a; rar a 文件名.rar 文件夹名实例测试&#x…

centos7 yum获取软件所有依赖包 创建本地yum源 yum离线安装软件

centos7 yum获取软件所有依赖包 创建本地yum源 离线安装软件 1、以安装docker 20.10为例2、centos7 yum获取docker 20.10 所有依赖包3、创建本地docker yum源4、yum使用本地docker源 离线安装docker 1、以安装docker 20.10为例 参考链接&#xff1a; 添加docker 清华软件源 y…

git环境超详细配置说明

一&#xff0c;简介 在git工具安装完成之后&#xff0c;需要设置一下常用的配置&#xff0c;如邮箱&#xff0c;缩写&#xff0c;以及git commit模板等等。本文就来详细介绍些各个配置如何操作&#xff0c;供参考。 二&#xff0c;配置步骤 2.1 查看当前git的配置 git conf…

使用 Apache Kafka 和 Go 将数据引入 OpenSearch

需要编写自定义集成层来满足数据管道中的特定要求&#xff1f;了解如何使用 Go 通过 Kafka 和 OpenSearch 实现此目的。 可扩展的数据摄取是OpenSearch等大规模分布式搜索和分析引擎的一个关键方面。构建实时数据摄取管道的方法之一是使用Apache Kafka。它是一个开源事件流平台…

米尔瑞萨RZ/G2L开发板-02 ffmpeg的使用和RTMP直播

最近不知道是不是熬夜太多&#xff0c;然后记忆力减退了&#xff1f; 因为板子回来以后我就迫不及待的试了一下板子&#xff0c;然后发现板子有SSH&#xff0c;但是并没有ffmpeg&#xff0c;最近总是在玩&#xff0c;然后今天说是把板子还原一下哇&#xff0c;然后把官方的固件…

前端单点登录SSO面试回答

JWT鉴权机制 1.JWT用于登录身份验证 2.用户登录成功后&#xff0c;后端通过JWT机制生成一个token&#xff0c;返回给客户端 3.客户端后续的每次请求都需要携带token&#xff0c;放在header的authorization中 4.后端从authorization中拿到token后&#xff0c;通过secretKey进…

Spring Boot中使用validator如何实现接口入参自动检验

文章目录 一、背景二、使用三、举例 一、背景 在项目开发过程中&#xff0c;经常会对一些字段进行校验&#xff0c;比如字段的非空校验、字段的长度校验等&#xff0c;如果在每个需要的地方写一堆if else 会让你的代码变的冗余笨重且相对不好维护&#xff0c;如何更加规范和优…

微服务-GateWay(网关)

所谓网关是什么意思&#xff1f; 相当于就是你们小区家的保安&#xff0c;进出小区都得获得保安的同意&#xff0c;守护你们小区的生命财产健康&#xff0c;网关也是如此&#xff0c;对每个请求都严格把关&#xff0c;将合法的或者是获得权限的请求进入服务器 网关的功能&…

扩散模型实战(四):从零构建扩散模型

推荐阅读列表&#xff1a; 扩散模型实战&#xff08;一&#xff09;&#xff1a;基本原理介绍 扩散模型实战&#xff08;二&#xff09;&#xff1a;扩散模型的发展 扩散模型实战&#xff08;三&#xff09;&#xff1a;扩散模型的应用 本文以MNIST数据集为例&#xff0c;从…

智能楼宇综合布线实训室建设方案

一、楼宇智能综合布线实训室方案概述 楼宇智能综合布线实训室方案旨在为学生提供一个真实的学习和实践环境&#xff0c;以培养他们在楼宇智能综合布线领域的实际操作能力和技能。以下是一个概述&#xff1a; 1. 培养目标&#xff1a;培养学生在楼宇智能综合布线方面的综合能力…

Shader学习(三)(片元着色器)

1、在片元着色器处理漫反射 // Upgrade NOTE: replaced _World2Object with unity_WorldToObjectShader "Custom/specularfragement" {properties{_sp("Specular",color) (1,1,1,1)_shiness("Shiness",range(1,64)) 8}SubShader{pass {tags{&…

网络通信原理应用层(第五十一课)

1)DNS:域名解析系统,端口号TCP或UDP的53 2)域名注册网站 -新网 www.xinnet.com -万网-阿里云 www.net.cn -中国互联 hulian.top 配置通过域名访问网站(NETBASE第七课)_IHOPEDREAM的博客-CSDN博客 2、FTP 1)FTP概述 -文件传输协议 -控制连接:TCP 21 <

leetcode-413. 等差数列划分(java)

等差数列划分 leetcode-413. 等差数列划分题目描述双指针 上期经典算法 leetcode-413. 等差数列划分 难度 - 中等 原题链接 - 等差数列划分 题目描述 如果一个数列 至少有三个元素 &#xff0c;并且任意两个相邻元素之差相同&#xff0c;则称该数列为等差数列。 例如&#xff0…

JMeter接口测试数据分离驱动应用

步骤&#xff1a; 创建csv文件&#xff0c;编写接口测试用例 新建线程组——创建循环控制器&#xff08;循环次数填用例总数&#xff09; 创建CSV数据文件设置&#xff0c;设置参数。&#xff08;注意&#xff1a;是否允许带引号&#xff1f;&#xff1a;一定要设置为true&a…