【JavaEE基础学习打卡02】是时候了解JavaEE了

news2024/11/28 10:52:05

目录

  • 前言
  • 一、为什么要学习JavaEE
  • 二、JavaEE规范介绍
    • 1.什么是规范?
    • 2.什么是JavaEE规范?
    • 3.JavaEE版本
  • 三、JavaEE应用程序模型
    • 1.模型前置说明
    • 2.模型具体说明
  • 总结


前言

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

本文就是大致了解一下 JavaEE,开始说明我们为什么要学习 JavaEE,有必要吗?然后是介绍了 JavaEE 规范,规范是什么?JavaEE 规范又是什么?了解 JavaEE 规范各版本情况,了解即可,学习了一些规范后我们可以再回过来看各版本的技术变化。最后是简单介绍了 JavaEE 应用程序模型,主要是为了对今后 JavaWeb 应用程序开发结构做铺垫,提前了解。


一、为什么要学习JavaEE

为什么要学习 JavaEE,其实可以从上一篇文章中知晓答案。目前大部分人员学习Java编程语言,今后的目标之一就是 Web 方向,也就是进行 JavaWeb 开发(浏览器入口中大千世界的开发)。那么 JavaWeb 应用程序是属于 B/S 架构的,B/S 架构有很多优势,相信大家也都了解。JavaEE 是实现 JavaWeb 应用程序的基础技术,换句话说,JavaEE 是 Java 解决 Web 互联网领域的技术。

现在技术发展十分迅速,Java 语言相关的优秀 Web 框架层出不穷,简化开发流程,降低开发难度。我们应该跳过基础直接上手框架?我个人觉得不应该。我们要知道,框架就是定义一套开发流程,我们按照约定即可实现相应功能。它帮我们完成了一些基础工作,让我们更好的将精力放在业务上。问题是,这样的我们只是会使用而已。而 JavaWeb 框架大都是基于 JavaEE 平台的,所以学习 JavaEE 没毛病。

学习任何知识之前,搞清楚为什么要学是很重要的,带着一定目的更有效率。

二、JavaEE规范介绍

JavaEE 官方自我描述

Java Platform, Enterprise Edition (Java EE) 是社区驱动的企业软件标准。Java EE 是利用 Java Community Process 开发的,业界专家、商业组织和开源组织、Java 用户组以及数不清的个人为此做出了巨大贡献。每个版本都集成了符合业界需求的新特性,提高了应用可移植性,提高了开发人员的工作效率。

在其自我描述中看到 JavaEE 是社区推动的企业软件标准,也就是说 JavaEE 不是一个人或一个公司制订出来的。企业软件标准,是说 JavaEE 是 Java 语言实现企业软件的标准或规范。所以本文出现了 JavaEE 规范这个词。

1.什么是规范?

规范: 是指明文规定或约定俗成的标准。比如道德规范、技术规范等。它是对我们的操作、言行等等进行定性的规定。

大家有听过一句话吗?

“一流企业做标准、二流企业做品牌、三流企业做产品!”

  • 三流企业做产品:
    • 三流的企业主要关注产品本身的质量和功能,通过提供性价比较高的产品来吸引消费者的购买。这种企业在市场上的表现比较依赖于价格和促销策略,很难在市场上建立稳定的品牌形象和忠诚度。这种企业通常具有较为传统的生产和管理方式,缺乏创新和差异化的竞争优势。
    • 从三流到一流也是需要一个成长过程,如果他们不止做产品生产,还十分注重技术核心,那么三流企业也是可能成为一流企业的。
  • 二流企业做品牌:
    • 二流的企业注重品牌的建设和推广,通过良好的品牌形象来吸引消费者的关注和认可。这种企业在市场上的表现可能不如一流企业稳定和持久,但是通过品牌的力量可以迅速提升企业的知名度和美誉度,进而扩大市场份额。这种企业通常具有较强的市场营销能力和创新意识,能够不断推陈出新,满足消费者的需求。
    • 例如苹果、麦当劳、百事等品牌公司!一件商品贴上某个品牌,可能价值差别会十倍、百倍、千倍。那么为什么大家相信品牌?为什么能赢得大众的信任?最终是谁将它提升到一个很高的地位?看到这个品牌就有一种质量好的感觉,这是基于大众的感受。我认为品牌公司也是经历了三流公司的严峻考验,赢得了消费者的青睐。
  • 一流企业做标准:
    • 一流的企业不仅仅是提供产品或服务,更是为整个行业的发展和规范制定标准。这种企业在行业中的地位非常重要,因为它们所制定的标准被广泛认可和采用,从而引领整个行业的发展方向。这种企业通常具有强大的技术实力和资源优势,能够影响整个行业的规则和格局。
    • 如今我们的操作系统大多数是微软的,手机系统,绝大是安卓的,我们安装软件或者制作软件的时候都必须遵守兼容他们系统的标准,不然软件不兼容,不会有人去买你的软件。一个产品由品牌做到成为一种规范,一种他能让你离不开,脱不掉,随处可见,满眼都是,这是多么强大的力量,制定游戏规则的公司才是最强大的公司,其实这过程也是一层层不断抽象的过程,这时最具体的产品就显得一般了。

我们国家的企业在这方面也是紧追猛赶,像华为公司,通过技术积累、突破,已经在5G技术上掌握话语权,它就是制定标准、规范的人。我们国家的高铁技术更加不用说了,这项标准早已名扬海外了。
我们国家在IT技术方面呢?虽然达不到制定标准的高度,但是由于中国各方面的优势,中国的IT技术发展是非常迅猛的。很多技术制定和优化我们都进行了参与。360安全方面很厉害,在一些国际赛事上都荣获很多大奖。阿里巴巴、百度、腾讯都有自己的技术输出。

2.什么是JavaEE规范?

先引用JavaEE官方自我描述

Java Platform, Enterprise Edition (Java EE) 是社区驱动的企业软件标准。Java EE 是利用 Java Community Process 开发的,业界专家、商业组织和开源组织、Java 用户组以及数不清的个人为此做出了巨大贡献。每个版本都集成了符合业界需求的新特性,提高了应用可移植性,提高了开发人员的工作效率。

Java EE 是 Java 企业版本的简称,是 Sun公司推出的企业级应用程序版本,目前被 Oracle公司收购接管。是社区驱动的企业软件标准,但明显是归 Oracle公司的。Oracle公司下面有很多产品,比如我们熟悉的 Java、Oracle 数据库,MySQL 数据库等。

我们要注意:Java EE 既不是一门编程语言,也不是一个现成的产品,而是一个标准,是一个为企业分布式应用的开发提供的一套规范和标准的平台,借助 Java 平台企业版(Java EE)帮助企业开发和部署可移植、健壮、可伸缩且安全的服务器端 Java应用程序。

Java EE 就是规定了企业分布式应用开发的一些标准,如果我们开发服务器端Java应用程序就需要遵守 Java EE 规范。

3.JavaEE版本

接下来我们来了解 JavaEE 有哪些版本,各版本的技术特点。大致了解即可,学习后可以回头看,更有感觉。

以下是 Java EE(Java Platform, Enterprise Edition)各个版本的发布时间和主要内容的简要总结:

  1. Java EE 1.0(1999年12月)

    • EJB(Enterprise JavaBeans)规范
    • JNDI(Java Naming and Directory Interface)
    • JMS(Java Message Service)
  2. Java EE 1.2(2000年12月)

    • Servlet API的改进
    • JavaServer Pages(JSP)技术
    • JTA(Java Transaction API)
    • JTS(Java Transaction Service)
  3. Java EE 1.3(2001年9月)

    • J2EE Connector Architecture
    • Java Message Service(JMS)的增强
  4. Java EE 1.4(2003年11月)

    • JSF(JavaServer Faces)
    • JSTL (JSP Standard Tag Library)
    • JavaMail API
    • Web服务支持(JAX-RPC)
    • Web服务元数据(JAXR)
  5. Java EE 5(2006年5月)

    • EJB 3.0规范,引入注解驱动(Annotation-driven)开发
    • Java Persistence API(JPA)
    • Web服务开发的改进
  6. Java EE 6(2009年12月)

    • Web Profile的引入,以简化Web应用程序开发
    • Servlet 3.0规范
    • CDI(Contexts and Dependency Injection)
    • JavaServer Faces(JSF)2.0规范
  7. Java EE 7(2013年6月)

    • WebSocket API
    • JSON支持
    • Batch应用程序处理
    • Concurrency Utilities(Java EE Concurrency Utilities)
    • JAX-RS 2.0(Java API for RESTful Web Services)
  8. Java EE 8(2017年9月)

    • Servlet 4.0规范
    • JSF 2.3规范
    • JSON-B(Java API for JSON Binding)
    • JSON-P(Java API for JSON Processing)

从 Java EE 8 发布以后,Java EE 被重命名为 Jakarta EE,并且版权转移到了 Eclipse Foundation。

我们可以看到 JavaEE 的版本并没有 JavaSE 版本发布频率快,目前 JavaEE 最新版本是JavaEE8。这可能与 Java EE 的设计目标有关。Java EE 旨在为企业级应用程序提供一个可扩展、灵活且可靠的平台,因此它需要更多的时间来开发和测试新功能,而且标准的制定更加困难。

三、JavaEE应用程序模型

1.模型前置说明

Java EE 应用程序模型是基于Java 编程语言和 Java 虚拟机。它们提供的经过验证的可移植性、安全性和开发人员工作效率构成了应用程序模型的基础。此类应用程序本质上很复杂,可能会从各种数据源访问数据并将应用程序分发到各种客户端。比如从文件中获取数据展示在页面,再比如从 Oracle 或 MySQL 数据库中获取数据展示在小程序中。那么为了更好地控制和管理这些应用程序,支持这些不同用户的业务功能在中间层执行。中间层表示由企业的信息技术部门密切控制的环境。中间层通常在专用服务器硬件上运行,可以访问企业的全部服务。也就是说这个中间层是数据源和展示地的连接,其实也就是我们开发的应用程序。

Java EE 应用程序模型定义了一种体系结构,用于将服务实现为多层应用程序,这些应用程序提供企业级应用程序所需的可伸缩性、可访问性和可管理性。此模型将实现多层服务所需的工作划分为以下部分:

  • 开发人员要实现的业务和表示逻辑
  • Java EE 平台提供的标准系统服务

开发人员可以依靠该平台为开发多层服务的硬系统级问题提供解决方案。

2.模型具体说明

接下来上官方图:多层应用程序
在这里插入图片描述

这张图,我们不必深究,也不要害怕看不懂。
图中很明显分为上、中、下三大块,首先我们分别来看:

在这里插入图片描述
最上面这部分是客户端层(Client Tier),该层很明显就是用户端,比如(应用客户端)Application Client、网页(Web Pages)。该部分是运行在客户端计算机上的,比如某直播软件在我们电脑上运行,比如通过 Web 浏览器查看的某网站页面。

在这里插入图片描述
中间这部分是 Web 层(Web Tier)和业务层(Business Tier),由 JavaEE 提供服务。比如 Web 层中的 JavaServer Faces Pages 技术,业务层中 Enterperise Beans 技术。简单理解就是在业务层实现功能的业务逻辑,Web 层是将组织数据如何进行展示。比如我们从数据库中拿到张三的详细信息,那么取数据,处理数据就可以在业务层实现,将这些分散的数据发送到适合的页面进行展示,就是在 Web 层实现的。

在这里插入图片描述

最下面这部分是企业信息系统 (EIS) 层,简单说就是数据库服务,主要提供了数据的存储、查询等等。

再看整个流程,用户在客户端的请求是经过了 Web 层和业务层处理的,处理的数据是在 EIS 层。往我们日常上网偏一偏,就是通过浏览器打开某个网站,会看到一个页面,其实这个页面的数据是存储在数据库中的,还是张三的信息:姓名、性别、年龄等,这些原始数据在业务层查询出来,并做处理,比如根据年龄可知张三是个青年人,然后在 Web 层将这个处理的结果发给响应的页面进行渲染,返回给客户端浏览器进行展示。举例可能不适合,没关系,我们了解有这样一个模型就可以了。


总结

为什么学习JavaEE? 打基础。
规范: 是指明文规定或约定俗成的标准。比如道德规范、技术规范等。它是对我们的操作、言行等等进行定性的规定。
Java Platform, Enterprise Edition (Java EE) 是社区驱动的企业软件标准。既不是一门编程语言,也不是一个现成的产品,而是一个标准,是一个为企业分布式应用的开发提供的一套规范和标准的平台,借助 Java 平台企业版(Java EE)帮助企业开发和部署可移植、健壮、可伸缩且安全的服务器端 Java 应用程序。
JavaEE版本 从1.0开始到目前的8.0
Java EE 应用程序模型 是基于Java 编程语言和 Java 虚拟机。

  • 客户端层组件在客户端计算机上运行。
  • Web 层组件在 Java EE 服务器上运行。
  • 业务层组件在 Java EE 服务器上运行。
  • 企业信息系统 (EIS) 层软件在 EIS 上运行 服务器。

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

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

相关文章

【刷题笔记8.11】LeetCode题目:二叉树中序遍历、前序遍历、后序遍历

LeetCode题目:二叉树中序遍历、前序遍历、后序遍历 题目1:二叉树中序遍历 (一)题目描述 给定一个二叉树的根节点 root ,返回 它的 中序 遍历 。 (二)分析 二叉树中序遍历,遍历…

6-Ngnix配置反向代理

1.前提 虚拟机能连接外网 仿真http应用需在本虚拟机启用(原因:只有一台虚拟机做测试) http_8080和http_8081要启用(http测试应用) [rootcent79-2 ~]# ls -l http_* -rwxr-xr-x 1 root root 6391676 Jul 19 13:39 http_8080 -rwxr-xr-x 1 …

【C# Programming】C#第一课(自己学习的笔记)

目录 一、C# 介绍 1.1 托管代码(Manage Code ) : 1.2 基础类型库 (Base Class Library): 1.3 程序集(Assembly): 1.4 .NET 框架: 1.5 公共中间语言(Common Intermediate Language),简称 IL。 1.6 C#编译器将源代…

RISC-V在快速发展的处理器生态系统中找到立足点

原文:RISC-V Finds Its Foothold in a Rapidly Evolving Processor Ecosystem 作者:Agam Shah 转载自:https://thenewstack.io/risc-v-finds-its-foothold-in-a-rapidly-evolving-processor-ecosystem/ 以下是正文 But the open source pr…

【用unity实现100个游戏之6】制作一个战旗自走棋类游戏(附源码)

文章目录 前言导入素材开始1. 设置瓦片间隙2. 放置全图瓦片3. 美化瓦片地图4. 添加树木障碍物5. 设定不同的排序图层6. 瓦片交互6. 瓦片交互优化6. 瓦片是否允许角色7. 添加角色8. 新增游戏管理脚本9. 角色移动范围逻辑10. 角色移动范围可视化11. 角色移动12. 重置瓦片颜色12. …

Spark(38):Streaming DataFrame 和 Streaming DataSet 转换

目录 0. 相关文章链接 1. 基本操作 1.1. 弱类型 api 1.2. 强类型 1.3. 直接执行 sql 2. 基于 event-time 的窗口操作 2.1. event-time 窗口理解 2.2. event-time 窗口生成规则 3. 基于 Watermark 处理延迟数据 3.1. 什么是 Watermark 机制 3.2. update 模式下使用 w…

【计算机视觉|生成对抗】条件生成对抗网络(CGAN)

本系列博文为深度学习/计算机视觉论文笔记,转载请注明出处 标题:Conditional Generative Adversarial Nets 链接:[1411.1784] Conditional Generative Adversarial Nets (arxiv.org) 摘要 生成对抗网络(Generative Adversarial…

04_Hudi 集成 Spark、保存数据至Hudi、集成Hive查询、MergeInto 语句

本文来自"黑马程序员"hudi课程 4.第四章 Hudi 集成 Spark 4.1 环境准备 4.1.1 安装MySQL 5.7.31 4.1.2 安装Hive 2.1 4.1.3 安装Zookeeper 3.4.6 4.1.4 安装Kafka 2.4.1 4.2 滴滴运营分析 4.2.1 需求说明 4.2.2 环境准备 4.2.2.1 工具类SparkUtils 4.2.2.2 日期转换…

读《Flask Web开发实战》(狼书)笔记 | 第1、2章

前言 2023-8-11 以前对网站开发萌生了想法,又有些急于求成,在B站照着视频敲了一个基于flask的博客系统。但对于程序的代码难免有些囫囵吞枣,存在许多模糊或不太理解的地方,只会照葫芦画瓢。 而当自己想开发一个什么网站的时&…

限流在不同场景的最佳实践

目录导读 限流在不同场景的最佳实践1. 前言2. 为什么要限流3. 有哪些限流场景3.1 限流场景分类3.2 限流与熔断降级之间的关系3.3 非业务限流3.4 业务限流 4. 有哪些限流算法4.1 计数器限流算法4.2 漏桶限流算法4.3 令牌桶限流算法4.4 滑动时间窗限流算法4.5 限流算法选型 5. 限…

【数据结构与算法】稀疏数组

文章目录 一:为什么会使用稀疏数组1.1 先看一个实际的需求1.2 基本介绍1.2.1 稀疏数组的处理方法1.2.2 数组的举例说明1.2.3 应用实例1.2.4 整体思路分析二维数组转稀疏数组的思路稀疏数组转原始的二维数组的思路 二:代码实现2.1 创建一个原始的11*11二维…

​LeetCode解法汇总1572. 矩阵对角线元素的和

目录链接: 力扣编程题-解法汇总_分享记录-CSDN博客 GitHub同步刷题项目: https://github.com/September26/java-algorithms 原题链接:力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台 描述: 给你一个正…

探秘金和OA:解析任意文件读取漏洞的潜在威胁

是喜是悲,但可以慰藉的是,你总不枉在这世界上活了一场,有了这样的认识,你就会珍重生活,而不会玩世不恭;同时也会给人自身注入一种强大的内在力量…… 漏洞复现 访问url: 构造payload /C6/Jh…

【网络编程(二)】NIO快速入门

NIO Java NIO 三大核心组件 Buffer(缓冲区):每个客户端连接都会对应一个Buffer,读写数据通过缓冲区读写。Channel(通道):每个channel用于连接Buffer和Selector,通道可以进行双向读…

日常问题——使用Java转将long类型为date类型,日期是1970年

😜作 者:是江迪呀✒️本文关键词:日常BUG、BUG、问题分析☀️每日 一言 :存在错误说明你在进步! 一、问题描述 long类型的日期为:1646718195 装换为date类型: Date date new Dat…

SQL | 使用函数处理数据

8-使用函数处理数据 8.1-函数 SQL可以用函数来处理数据。函数一般是在数据上执行的,为数据的转换和处理提供了方便。 8.1.1 函数带来的问题 每种DBMS都有特定的函数,只有很少一部分函数,是被所有主要的DBMS等同的支持。 虽然所有的类型的…

Linux 基础(五)常用命令-文件属性

文件属性 文件权限文件属性修改文件权限属性 文件所有者 文件权限 文件属性 Linux中文件权限 可以通过文件属性体现; 使用 ll 查看文件列表 最前面的 l d 表示文件类型 1 5 表示硬链接数 或者 子文件夹个数 所属用户 所属用户组 文件大小 创建/更新时间 文件&…

【前端二次开发框架关于关闭eslint】

前端二次开发框架关于关闭eslint 方法一方法二方法三方法四:以下是若想要关闭项目中的部分代码时: 方法一 在vue.config.js里面进行配置: module.exports {lintOnSave:false,//是否开启eslint保存检测 ,它的有效值为 true || false || err…

一个简单实用的线程池及线程池组的实现!

1.线程池简介 线程池,顾名思义,就是一个“池子”里面放有多个线程。为什么要使用线程池呢?当我们编写的代码需要并发异步处理很多任务时候,一般的处理办法是一个任务开启一个线程去处理,处理结束后释放线程。可是这样…

Docker安装 Kibana

目录 前言安装Kibana步骤1:准备1. 安装docker2. 搜索可以使用的镜像。3. 也可从docker hub上搜索镜像。4. 选择合适的redis镜像。 步骤2:拉取 kibana 镜像拉取镜像查看已拉取的镜像 步骤3:创建容器创建容器方式1:快速创建容器 步骤…