【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 上运行 服务器。

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

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

相关文章

java接口导出csv

1、背景介绍 项目中需要导出数据质检结果,本来使用Excel,但是质检结果数据行数过多,导致用hutool报错,因此转为导出csv格式数据。 2、参考文档 https://blog.csdn.net/ityqing/article/details/127879556 工程环境:…

Redis-分布式锁!

分布式锁,顾名思义,分布式锁就是分布式场景下的锁,比如多台不同机器上的进程,去竞争同一项资源,就是分布式锁。 分布式锁特性 互斥性:锁的目的是获取资源的使用权,所以只让一个竞争者持有锁,这…

【算法】排序+双指针——leetcode三数之和、四数之和

三数之和 (1)排序双指针 算法思路: 和之前的两数之和类似,我们对暴力枚举进行了一些优化,利用了排序双指针的思路: 我们先排序,然后固定⼀个数 a ,接着我们就可以在这个数后面的区间…

OpenCV实例(九)基于深度学习的运动目标检测(一)YOLO运动目标检测算法

基于深度学习的运动目标检测(一) 1.YOLO算法检测流程2.YOLO算法网络架构3.网络训练模型3.1 训练策略3.2 代价函数的设定 2012年,随着深度学习技术的不断突破,开始兴起基于深度学习的目标检测算法的研究浪潮。 2014年,…

Davinci 报表工具 0.3.0-rc release 文本框模糊查询不生效问题

背景: 在使用过程中发现davinci 的控制器配置中, 取值配置的对应关系设置 包含 或 不包含时 不生效, 不能实现模糊匹配效果, 只能精确查询; 问题分析: 通过跟踪接口及相应代码, 发现在sql 拼接时没有对 like 和 not like 类型的值两侧添加百分号, 导致模糊查询失败 调用过程…

CentOS系统环境搭建(七)——Centos7安装MySQL

centos系统环境搭建专栏🔗点击跳转 坦诚地说,本文中百分之九十的内容都来自于该文章🔗Linux:CentOS7安装MySQL8(详),十分佩服大佬文章结构合理,文笔清晰,我曾经在这篇文章…

Kotlin 使用 View Binding

解决的问题: 《第一行代码——Android》第三版 郭霖 P277 视图绑定的问题 描述: kotlin-android-extensions 插件已经弃用 butter knife 已经弃用 解决办法 推荐使用 View Binding 来代替 findViewById 使用方法 1、配置 build.gradle 2、在act…

绝对值函数的可导性

绝对值函数的可导性 声明:下面截图来自《考研数学常考题型解题方法技巧归纳》

利用Figlet工具创建酷炫Linux Centos8服务器-登录欢迎界面-SHELL自动化编译安装代码

因为我们需要生成需要的特定字符,所以需要在当前服务器中安装Figlet,默认没有安装包的,其实如果我们也只要在一台环境中安装,然后需要什么字符只要复制到需要的服务器中,并不需要所有都安装。同样的,我们也可以利用此生成的字符用到脚本运行的开始起头部分,用ECHO分行标…

使用python读Excel文件并写入另一个xls模版

效果如下: 原文件内容 转化后的内容 大致代码如下: 1. load_it.py #!/usr/bin/env python import re from datetime import datetime from io import BytesIO from pathlib import Path from typing import List, Unionfrom fastapi import HTTPExcep…

睿趣科技:抖音开网店现在做还来得及吗

随着社交媒体的迅速发展,抖音作为一款短视频平台,已经在年轻人中间取得了巨大的成功。而近年来,越来越多的人开始考虑在抖音上开设网店,以迎合这一潮流。那么,抖音开网店现在还来得及吗? 首先,要明确的是&…

一篇文章教会你搭建私人kindle图书馆,并内网穿透实现公网访问

搭建私人kindle图书馆,并内网穿透实现公网访问 在电子书风靡的时期,大部分人都购买了一本电子书,虽然这本电子书更多的时候是被搁置在储物架上吃灰,或者成为盖泡面的神器,但当亚马逊发布消息将放弃电子书在中国的服务…

利用Python隧道爬虫ip轻松构建全局爬虫网络

嘿,爬虫程序员们!你们有没有碰到过需要大规模数据爬取的情况?也许你们之前遇到过网站的反爬措施,卡住你们的进度。别担心,今天我来分享一个利用Python隧道爬虫ip实现的方法,帮助你们轻松搭建全局爬虫ip网络…

IC设计仿真云架构

对于IC仿真来说,最重要的是要安全、可维护、高性能的的HPC环境环境。 那么云上如何搭建起一套完整的IC仿真云环境呢? 这种架构应该长什么样子? 桌面虚拟化基础架构 将所有桌面虚拟机在数据中心进行托管并统一管理;同时用户能够…

嵌入式:ARM Day4

一、自己编写代码实现三盏灯点亮 源码: .text .global _start _start: 进行一次初始化bl RCC_INITbl LED1_INITbl LED2_INITbl LED3_INITb looploop: 循环开关灯bl LED1_ONbl delay_1sbl LED1_OFFbl delay_1sbl LED2_ONbl delay_1sbl LED2_OFFbl delay_1sbl…

如何进行网络活动监控

组织的 IT 基础架构中的每个网络设备上都发生了大量活动,例如数据包传输、来自网络协议的消息、设备状态事件等。网络活动成为在检测到问题时识别网络瓶颈的面包屑,因此即使是最微小的网络活动也应受到监控,因为它直接影响整体网络性能、运行…

UI设计师个人工作总结范文精选

UI设计师个人工作总结范文(一) 在忙忙碌碌中,2019年又将过去了,在这一年当中,设计部无论是在运作模式、设计产值、还是人员结构,各方面的变化都比较大。 设计部的运作模式是从7月底开始进行调整的,以独立承包制的运营方…

python爬虫5:requests库-案例3

python爬虫5:requests库-案例3 前言 ​ python实现网络爬虫非常简单,只需要掌握一定的基础知识和一定的库使用技巧即可。本系列目标旨在梳理相关知识点,方便以后复习。 申明 ​ 本系列所涉及的代码仅用于个人研究与讨论,并不会对网…

mysql 01.三范式,数据类型

01.概念的区分: mysql是属于DBMS层次的,sql语句是用于DBMS的语句。 02.sql语句详细介绍: SQL的概述Structure Query Language(结构化查询语言)简称SQL,它被美国国家标准局(ANSI)确定为关系型数据库语言的美国标准,后…

conda常用命令及国内镜像源

conda命令使用介绍 启动conda source ~/.bashrc帮助目录 conda create -h检查conda版本 conda --version升级当前版本的conda conda update conda环境管理 列出所有的环境 conda info -e conda env list安装一个不同版本的python新环境 conda create --name py27 pytho…