【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.rhkb.cn/news/88771.html

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

相关文章

每天一道leetcode:72. 编辑距离(动态规划困难)

今日份题目: 给你两个单词 word1 和 word2, 请返回将 word1 转换成 word2 所使用的最少操作数 。 你可以对一个单词进行如下三种操作: 插入一个字符 删除一个字符 替换一个字符 示例1 输入:word1 "horse", word…

静态库和动态库制作

文章目录 前言一、静态库和动态库介绍1、静态库2、动态库 二、静态库的制作及使用1、准备好源码2、编译源码生成 .o 文件3、制作静态库4、使用静态库 三、动态库的制作及使用1、生成位置无关的 .o 文件2、制作动态库3、使用动态库4、指定动态库路径并使其生效 四、对比1、静态库…

链表OJ详解

💕人生不满百,常怀千岁忧💕 作者:Mylvzi 文章主要内容:链表oj详解 题目一:移除元素 题目要求: 画图分析: 代码实现: struct ListNode* removeElements(struct List…

Linux实用命令合集

适用于CentOS7系统,其他系统有些命令不支持 yum install epel-release 失败 wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo vi/vim检索关键字 命令模式:/****"n"可以跳转到下一个关键字位置 cat 查看配置文件不显示…

Redis 6.5 服务端开启多线程源码

redis支持开启多线程,只有从socket到读取缓冲区和从输出缓冲区到socket这两段过程是多线程,而命令的执行还是单线程,并且是由主线程执行 借鉴:【Redis】事件驱动框架源码分析(多线程) 一、main启动时初始化…

第4章:决策树

停止 当前分支样本均为同一类时,变成该类的叶子节点。当前分支类型不同,但是已经没有可以用来分裂的属性时,变成类别样本更多的那个类别的叶子节点。当前分支为空时,变成父节点类别最多的类的叶子节点。 ID3 C4.5 Cart 过拟合 缺…

超导热催生meme,换汤不换药的投机轮回

文/章鱼哥 出品/陀螺财经 币圈对炒作meme概念的热情从未消亡过。 随着一种名为LK-99的物质被发现,围绕超导的兴奋不仅激发了科学界,加密货币相关概念也与之沸腾。不出所料,与此前围绕元宇宙、AI大肆炒作一样,许多meme代币已经出现…

Spring 使用注解开发、代理模式、AOP

使用注解开发 在Spring4之后&#xff0c;要使用注解开发&#xff0c;必须要保证AOP的包导入了 项目搭建&#xff1a; 在配置文件中导入约束&#xff0c;增加注解支持 <?xml version"1.0" encoding"UTF-8"?> <beans xmlns"http://www.spri…

华为新版ENSP PRO模拟器测评:性能表现与功能扩展一览

一、引言 在网络领域不断涌现的新技术和复杂的网络拓扑要求&#xff0c;推动了网络设备模拟器的持续发展和创新。华为作为一家领先的通信技术解决方案提供商&#xff0c;不断致力于为网络工程师和技术从业人员提供更优秀的仿真环境。最近&#xff0c;华为推出了ensp pro模拟器的…

html 计算器界面

其他链接&#xff1a; https://www.freecodecamp.org/news/how-to-build-an-html-calculator-app-from-scratch-using-javascript-4454b8714b98/ https://codepen.io/pen/tour/welcome/start 下面展示一些 内联代码片。 <!DOCTYPE html> <html lang"en">…

苹果正在测试新款Mac mini:搭载M3芯片 配备24GB大内存

据悉苹果目前正在测试新的Mac机型&#xff0c;亮点是采用最新的M3芯片。 据报道&#xff0c;首款搭载M3芯片的设备应该是13英寸的MacBook Pro和重新设计的MacBook Air&#xff0c;Mac mini机型并不在名单上。 M3和M2同样拥有最多8个核心&#xff0c;分别为4个性能核和4个能效核…

MySQL高阶知识点(一)一条SQL【更新】语句是如何执行的

一条SQL【更新】语句是如何执行的 首先&#xff0c;可以确定的说&#xff0c;【查询】语句的那一套流程&#xff0c;【更新】语句也是同样会走一遍&#xff0c;与查询流程不一样的是&#xff0c; 更新语句涉及到【事务】&#xff0c;就必须保证事务的四大特性&#xff1a;ACID&…

Java-IO模型分析

BIO&#xff08;同步阻塞&#xff09; 利用网络连接传输数据为例&#xff1a; 服务端单线程 服务端只有一个主线程处理客户端的连接和读写处理&#xff0c;此时如果有第二个客户端欲连接并发送消息服务端是接收不到的。 因为读写和等待accept连接都是阻塞的。 sever端代码…

【TypeScript】TS类型守卫(六)

【TypeScript】TS类型守卫&#xff08;六&#xff09; 【TypeScript】TS类型守卫&#xff08;六&#xff09;一、什么是类型守卫二、in操作符三、typeof操作符四、instanceof操作符五、自定义类型谓词函数 一、什么是类型守卫 TypeScript类型守卫&#xff08;Type Guards&…

微信小程序调用map数据 并在wxml中对数组进行截取的操作

wxs文件的位置如图 实现数组截取 只保留五张图片 <wxs module"filter" src"./slicefunc.wxs"></wxs> <view class"wrap"><view class"search-box" bindtap"toSearch"><view class"v1"…

eclipse 导入项目js报错问题

eclipse 导入项目后会出现项目中的js文件报错&#xff08;红叉&#xff09;&#xff0c;如下图所示&#xff0c;有时候报错的文件很多&#xff0c;需要集中处理。 解决办法&#xff1a; 右键项目名称》Properties》MyEclipse》JavaScript》Include Path&#xff0c;在右侧选择“…

opencv图片灰度二值化

INCLUDEPATH D:\work\opencv_3.4.2_Qt\include LIBS D:\work\opencv_3.4.2_Qt\x86\bin\libopencv_*.dll #include <iostream> #include<opencv2/opencv.hpp> //引入头文件using namespace cv; //命名空间 using namespace std;//opencv这个机器视…

jupyter切换conda虚拟环境

环境安装 conda install nb_conda 进入你想使用的虚拟环境&#xff1a; conda activate your_env_name 在你想使用的conda虚拟环境中&#xff1a; conda install -y jupyter 在虚拟环境中安装jupyter&#xff1a; conda install -y jupyter 重启jupyter 此时我们已经把该安装…

【LeetCode每日一题】——575.分糖果

文章目录 一【题目类别】二【题目难度】三【题目编号】四【题目描述】五【题目示例】六【题目提示】七【解题思路】八【时间频度】九【代码实现】十【提交结果】 一【题目类别】 哈希表 二【题目难度】 简单 三【题目编号】 575.分糖果 四【题目描述】 Alice 有 n 枚糖&…