当前位置: 首页 > news >正文

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

目录

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


前言

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

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


一、为什么要学习Java EE

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

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

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

二、Java EE规范介绍

Java EE 官方自我描述

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

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

1.什么是规范?

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

大家有听过一句话吗?

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

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

我们国家的企业在这方面也是紧追猛赶,像华为公司,通过技术积累、突破,已经在5G技术上掌握话语权,它就是制定标准、规范的人。我们国家的高铁技术更加不用说了,这项标准早已名扬海外了。

我们国家在IT技术方面呢?虽然达不到制定标准的高度,但是由于中国各方面的优势,中国的IT技术发展是非常迅猛的。很多技术制定和优化我们都进行了参与。360安全方面很厉害,在一些国际赛事上都荣获很多大奖。阿里巴巴、百度、腾讯都有自己的技术输出。

2.什么是Java EE规范?

先引用 Java EE 官方自我描述

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.Java EE版本

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

以下是 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。

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

三、Java EE应用程序模型

1.模型前置说明

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

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

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

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

2.模型具体说明

接下来上官方图:多层应用程序

在这里插入图片描述

这张图,我们不必深究,也不要害怕看不懂。

图中很明显分为上、中、下三大块,首先我们分别来看:

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

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

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


总结

为什么学习Java EE? 打基础。

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

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

Java EE 版本 从1.0开始到目前的8.0

Java EE 应用程序模型 是基于Java 编程语言和 Java 虚拟机。

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

相关文章:

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

目录 前言一、为什么要学习Java EE二、Java EE规范介绍1.什么是规范?2.什么是Java EE规范?3.Java EE版本 三、Java EE应用程序模型1.模型前置说明2.模型具体说明 总结 前言 📜 本系列教程适用于 Java Web 初学者、爱好者,小白白。…...

LeetCode 2813. Maximum Elegance of a K-Length Subsequence【反悔贪心】2582

本文属于「征服LeetCode」系列文章之一,这一系列正式开始于2021/08/12。由于LeetCode上部分题目有锁,本系列将至少持续到刷完所有无锁题之日为止;由于LeetCode还在不断地创建新题,本系列的终止日期可能是永远。在这一系列刷题文章…...

日常BUG——SpringBoot模糊映射

😜作 者:是江迪呀✒️本文关键词:日常BUG、BUG、问题分析☀️每日 一言 :存在错误说明你在进步! 一、问题描述 SpringBoot在启动时报出如下错误: Caused by: java.lang.IllegalStateExceptio…...

Docker 镜像

1. 什么是镜像? 镜像 是一种轻量级、可执行的独立软件包,它包含运行某个软件所需的所有内容,我们把应用程序和配置依赖打包好形成一个可交付的运行环境(包括代码、运行时需要的库、环境变量和配置文件等),这个打包好的运行环境就…...

Python发送QQ邮件

使用Python的smtplib可以发送QQ邮件,代码如下 #!/usr/bin/python3 import smtplib from email.mime.text import MIMEText from email.header import Headersender 111qq.com # 发送邮箱 receivers [222qq.com] # 接收邮箱 auth_code "abc" # 授权…...

梯度下降求极值,机器学习深度学习

目录 梯度下降求极值 导数 偏导数 梯度下降 机器学习&深度学习 学习形式分类...

【业务功能篇62】Spring boot maven多模块打包时子模块报错问题

程序包 com.xxx.common.utils不存在或者xxx找不到符号 我们项目中一般都是会分成多个module模块,做到解耦,方便后续做微服务拆分模块,可以直接就每个模块进行打包拎出来执行部署这样就会有模块之间的调用,比如API模块会被Service…...

【BASH】回顾与知识点梳理(二十一)

【BASH】回顾与知识点梳理 二十一 二十一. Linux 的文件权限与目录配置21.1 使用者与群组属主(文件拥有者)属组(群组概念)其他人的概念root(万能的天神)Linux 用户身份与群组记录的文件 21.2 Linux 文件权限概念Linux 文件属性Linux 文件权限的重要性 21.3 如何改变文件属性与权…...

从针尖对麦芒,到丝滑入扣,记录那些BT需求

前言: 最近被一个“简单”的需求,搞的有点难受。需求其实很简单,就是记录某成品生产过程数据,然后进行展示,但因需求部门是管理部门。为了能获取足够多的参数来提高生产效率和研发进度。因此需要生产来统计收集对应生产…...

封装vue2局部组件都要注意什么

一. 关于局部组件组成的三个部分&#xff08;template, script, style&#xff09; template > 组件的模板结构 &#xff08;必选&#xff09; 每个组件对应的模板结构&#xff0c;需要定义到template节点中 <template><!-- 当前组件的dom结构&#xff0c;需…...

【深入浅出程序设计竞赛(基础篇)第三章 算法从0开始】

深入浅出程序设计竞赛&#xff08;基础篇&#xff09;第三章 算法从0开始 第三章 例题例3-1例3-2例3-3例3-4例3-5例3-6例3-7例3-8例3-9例3-10例3-11例3-12 第三章 课后习题3-13-23-33-43-53-63-73-83-9 第三章 例题 例3-1 #include<iostream> using namespace std;int …...

安全之安全(security²)博客目录导读

研究方向&#xff1a;安全之安全 研究内容&#xff1a;ARM/RISC-V安全架构、TF-A/TEE之安全、GP安全认证、静态代码分析、FUZZ模糊测试、IDA逆向分析、安全与功耗等&#xff0c;欢迎您的关注&#x1f496;&#x1f496; 一、ARM安全架构 1、ARM安全架构及其发展趋势&#xff0…...

ubuntu安装opencv4

apt 安装 sudo apt install libopencv-dev python3-opencvpkg-config查看安装 sudo apt install pkg-configpkg-config --modversion opencv4pkg-config --libs --cflags opencv4参考 如何在 Ubuntu 20.04 上安装 OpenCV pkg-config 详解...

Qt 当磁盘可用空间小于指定大小时删除早期的文件

1. 需求 用户反应&#xff0c;电脑由于自身磁盘空间只有128G&#xff0c;由于软件执行一次任务&#xff0c;就要录视频记录&#xff0c;导致磁盘空间爆满&#xff0c;电脑卡&#xff0c;无法再次生成视频 2. 分析&#xff1a;当时软件没有写自动删除视频的代码导致的。 可以…...

浙大数据结构第七周之07-图6 旅游规划

题目详情&#xff1a; 有了一张自驾旅游路线图&#xff0c;你会知道城市间的高速公路长度、以及该公路要收取的过路费。现在需要你写一个程序&#xff0c;帮助前来咨询的游客找一条出发地和目的地之间的最短路径。如果有若干条路径都是最短的&#xff0c;那么需要输出最便宜的…...

RocketMQ双主双从同步集群部署

&#x1f388; 作者&#xff1a;互联网-小啊宇 &#x1f388; 简介&#xff1a; CSDN 运维领域创作者、阿里云专家博主。目前从事 Kubernetes运维相关工作&#xff0c;擅长Linux系统运维、开源监控软件维护、Kubernetes容器技术、CI/CD持续集成、自动化运维、开源软件部署维护…...

分类预测 | MATLAB实现EVO-CNN多输入分类预测

分类预测 | MATLAB实现EVO-CNN多输入分类预测 目录 分类预测 | MATLAB实现EVO-CNN多输入分类预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 1.MATLAB实现EVO-CNN多输入分类预测 2.代码说明&#xff1a;量谷优化卷积神经网络的数据分类预测&#xff1a;要求于Matlab …...

DAY04_SpringMVC—SpringMVC简介PostMan和ApiFox工具使用SpringMVC请求与响应REST风格

目录 一 SpringMVC简介1 SpringMVC概述问题导入1.1 SpringMVC概述 2 入门案例问题导入2.0 回顾Servlet技术开发web程序流程2.1 使用SpringMVC技术开发web程序流程2.2 代码实现【第一步】创建web工程&#xff08;Maven结构&#xff09;【第二步】设置tomcat服务器&#xff0c;加…...

phpstorm配置ftp同步文件到服务器

这里的默认快捷键 不是 CtrlS &#xff1b;需要设置快捷键&#xff0c;这里原来是save all操作时上传文件到服务器&#xff1b; ** 设置好快捷键后按 CtrlS就会同步文件&#xff08;添加删除文件后保存&#xff0c;服务器也会同步&#xff09; ** 搜索出save all 后&#xf…...

前端jd要求:了解一门后端开发语言优先 解决方案之Node.js

前端jd要求&#xff1a;了解一门后端开发语言优先 解决方案之Node.js 前言常见的后端开发语言一、什么是 Node.js二、学习 Node.js 的前置知识三、学习 Node.js 的步骤1、Node.js 的安装2、Node.js 的基本语法和 API模块导入和导出文件读写操作HTTP 服务器命令行参数 3、Node.j…...

什么是ServiceMesh(Istio一)

现在最火的后端架构无疑是微服务了&#xff0c;微服务将之前的单体应用拆分成了许多独立的服务应用&#xff0c;每个微服务都是独立的&#xff0c;好处自然很多&#xff0c;但是随着应用的越来越大&#xff0c;微服务暴露出来的问题也就随之而来了&#xff0c;微服务越来越多&a…...

【腾讯云 Cloud Studio 实战训练营】Hexo 框架 Butterfly 主题搭建个人博客

什么是Cloud Studio Cloud Studio 是基于浏览器的集成式开发环境&#xff08;IDE&#xff09;&#xff0c;为开发者提供了一个永不间断的云端工作站。用户在使用 Cloud Studio 时无需安装&#xff0c;随时随地打开浏览器就能在线编程。 ​ Hexo 博客成品展示 本人博客如下&…...

搭建Excel服务器

1、下载Excel服务器 下载地址 2、解压文件 3、打开服务器 4、服务器运行信息 5、连接测试 打开客户端 6、登录到服务器 默认账号 密码 admin 3 修改文件保存路径(服务器端点击配置) 7、客户端整体界面 8、配置权限 9、设计模板 10、其他用户登录就可以填写信息 11、用户&#…...

渗透测试成功的8个关键

渗透测试 (penetration test)并没有一个标准的定义&#xff0c;国外一些安全组织达成共识的通用说法是&#xff1a;渗透测试是通过模拟恶意黑客的攻击方法&#xff0c;来评估计算机网络系统安全的一种评估方法。这个过程包括对系统的任何弱点、技术缺陷或漏洞的主动分析&#x…...

【leetcode】链表part2

24. 两两交换链表中的节点 迭代方法 public static ListNode swapPairs(ListNode head) {// 输入&#xff1a;head [1,2,3,4]// 输出&#xff1a;[2,1,4,3]ListNode dummy new ListNode(0);dummy.next head;ListNode cur dummy;while (cur.next ! null && cur.ne…...

C#数据类型转换

目录 1.常用的数据类型: ​编辑1.1别名概念例子: 输出结果&#xff1a; 2.数值类型之间的相互转换: 2.1举例: ​编辑输出结果: 1.常用的数据类型: 1.1别名概念例子: 输出结果&#xff1a; 用GetType来获取数据类型的时候&#xff0c;就是指向System.Byte和System.Char这个…...

mybatis-plus逻辑删除的坑

一旦在逻辑字段上加了TableLogic逻辑删除的配置&#xff0c;并且使用mybatis-plus自带的方法时&#xff08;如果自己用xml写SQL不会出现下面的情况&#xff09; 查询、修改时会自动排除逻辑删除的数据 当使用mybatis-plus自带的查询方法时&#xff0c;就不用每次查询的时候跟…...

SQL Server基础之游标

一&#xff1a;认识游标 游标是SQL Server的一种数据访问机制&#xff0c;它允许用户访问单独的数据行。用户可以对每一行进行单独的处理&#xff0c;从而降低系统开销和潜在的阻隔情况&#xff0c;用户也可以使用这些数据生成的SQL代码并立即执行或输出。 1.游标的概念 游标是…...

(二)结构型模式:4、组合模式(Composite Pattern)(C++实例)

目录 1、组合模式&#xff08;Composite Pattern&#xff09;含义 2、组合模式应用场景 3、组合模式的优缺点 4、组合模式的UML图学习 5、C实现组合模式的简单示例&#xff08;公司的OA系统&#xff09; 1、组合模式&#xff08;Composite Pattern&#xff09;含义 组合模…...

flask接口请求频率限制

pip install Flask-Limiter Flask-Limiter官方文档 基本使用 默认是用IP作为key进行计数的&#xff0c;你也可以自定义key&#xff0c;具体看官网 from flask import Flask from flask_limiter import Limiter from flask_limiter.util import get_remote_addressapp Flas…...