javaee和javaee_JavaEE概念简介

javaee和javaee

这篇文章旨在阐明J2EE范例中使用的首字母缩写词和概念。 J2EE代表Java to Platform,Entreprise Edition。 它使创建模块化Java应用程序得以部署在应用程序服务器上。 它依赖于Java SE,Java SE是一组Java库的核心,所有Java应用程序都在该Java库上实现。

一般概念

在深入探讨J2EE之前,这里提醒您一些一般概念:

  • 多层应用程序 –多层应用程序(或多层体系结构)是分为多个逻辑部分的应用程序,这些逻辑部分(通常)在多台服务器上实现。 例如,具有用户及其浏览器,应用程序服务器和数据库的3层模型位于分别处理应用程序服务器请求的服务器上。
  • 多层服务 –考虑3层模型中的服务时,应用程序服务器是一种提供对用户请求的响应的服务。 数据库服务器提供对应用程序服务器查询的答案。
  • Java Bean –这些Java类包含私有属性,可使用getter和setter方法进行访问。 从技术上讲,这些类还必须具有无参数构造函数并实现Serializable接口。

J2EE 5概念

J2EE多层应用程序(来自《 J2EE教程》)

  • Java EE应用程序模型 –此模型描述了实现服务的多层体系结构。 定义服务定义的边界没有明确定义。 实际上,服务是一个逻辑概念,其具体/实际对应项取决于实现这些概念的应用程序。 例如,它是客户机/服务器模型中的服务器。
  • Java EE Server –它是J2EE范例中的3层范例的应用服务器。 它由Web层(服务JSP页面)和业务层(管理企业Java Bean)组成。
  • Java EE组件 –“组件”是指与其他组件结合使用以构建应用程序的独立软件单元。
    • Web组件 –生成页面或返回给用户查询的内容的Web层的一部分。 通常,这些是Java Servlet,JavaServer Faces和Java Server Pages。
    • Applet –作为响应用户请求的一部分而发送的小型Java软件应用程序,旨在在用户的浏览器中运行。 Applet与Java竞争。
    • 应用程序客户端 –例如,用Java编写的桌面应用程序。
    • 企业Java Bean –请参见下文。
  • Java EE客户端 –此概念重组了其他三个概念:
    • Web客户端(或瘦客户端) –在过去(并非如此),返回客户端请求的网页通常包含在将结果返回给客户端之前在应用程序服务器上执行的代码脚本。 这些页面被视为EE客户。 例如,可以查询一列员工,并根据查询的用户显示不同的结果。 今天,大多数开发人员不再在其网页中包含脚本。 这被认为是不好的做法。 他们倾向于使用MVC设计原则,该原则禁止这些页面中的脚本。
    • 小程序
    • 应用客户端
  • Java EE服务器通信 –这是指瘦客户机与应用程序客户机与应用程序服务器之间发生的通信。 通常,瘦客户端和小程序与Web层通信,而应用程序客户端与EJB通信。
  • 您也不太清楚吗? 您觉得麻烦吗? 欢迎来到俱乐部! 这就是为什么REST原则和MVC设计原则在当今Web应用程序开发中盛行的原因。

  • EJB(企业Java Bean) –这是一个逻辑概念,与传统Java Bean没有任何关系。 它基本上试图将业务逻辑封装在多层应用程序的后端(即服务器端)上。 它最初试图解决的一个关键问题是数据库的事务完整性。 警告:已经有多个版本的EJB,而版本3.0与早期版本显然是分离的。
  • JavaBean组件 –它是Java Bean的同义词,主要用于JSP范例中。
  • Java EE容器 –在此处部署组装好的Java EE组件(即,在应用程序服务器上)。 其中一个定义了包含servelts和JSP页面的Web容器,以及包含Entreprise Java Bean的EJB容器。 还定义了用于独立应用程序的应用程序客户端容器和浏览器中的applet容器。
  • 部署描述符 –这是一个XML文件,提供打包应用程序的部署信息。 有关更多信息,请参见此处 。
  • SOAP(简单对象访问协议) –它是一种在Web上提供的服务之间交换消息的协议。 消息是根据XML构造的,可以通过许多传输层(最常见的是HTTP)进行交换。 SOAP与JSON和类似REST的服务竞争。
  • WSLD(Web服务描述语言) –它使用XML文档(名称,位置,通信模式)描述网络服务。
  • UDDI(通用描述,发现和集成)ebXML –用于在线发布有关产品和服务的信息。
  • Java Servlet – Servlet是一个Java类,用于处理传入的用户HTTP请求并返回结果。
  • JSP(JavaServer页面) –一种基于文本HTML文档(即一种模板),经过处理以生成静态内容。 它可以包含脚本代码段,这些代码段被执行以呈现最终的静态文档。
  • JSTL(JavaServer页面标准标记库) – JSP中用于模仿脚本代码功能的一组标准标记。 例如,遍历客户端列表以显示其相应信息。 如今,此类标记已取代了JSP中的脚本代码。 它们通常用于生成用信息填充页面以显示给用户。
  • JSF(Java Server Face) –这些是JavaServer Page,其中包含JavaServer Face标记(与JSTL标记相似)。 另外,JSF允许定义页面之间的导航模型(类似于Spring Web流)。 它还包括Facelets。
  • Facelets – Facelets是JSF的MVC视图部分。 它基本上使用提供的数据(例如,带有客户端列表)将模板转换为HTML文档。 它还可以提取部分生成的文档(例如HTML正文),并将其包含在另一个模板中。 这等效于Sitemesh所做的事情。
  • 基于XML的Web服务的Java API(JAX-WS) –一种使用XML通信定义Web服务的方法。
  • 用于XML绑定的Java API(JAXB) –一种将Java bean来回转换(通常)为XML文档的方法。 有关更多详细信息,请参见此处 。
  • JTA(Java事务API) –意味着通过自动提交和回滚来分隔数据库事务。
  • JMS(Java消息服务) –一种API,允许通过Internet在应用程序和服务之间可靠且异步地交换消息。 ActiveMQ实现JMS。
  • JavaMail API –一种从应用程序发送电子邮件的方法。
  • JAXP(用于XML处理的Java API) –启用XML文档的处理。
  • JAXR(用于XML注册表的Java API) –一种API,允许访问包含元数据的注册表。 它基于XML。
  • JDBC(Java数据库连接性) –该API使应用程序可以直接与数据库执行SQL事务。
  • JCA(Java EE连接器体系结构) –它帮助应用程序获得与信息系统(通常是数据库)的连接。 有关更多详细信息,请参见这篇文章 。
  • JPA(Java持久性API) –它是一个ORM(对象/关系映射)定义,用于帮助将对象存储在数据库中。 请参阅此处的示例。
  • JNDI(Java命名和目录接口) –一种存储和检索资源或使用其名称访问资源的方法。 有关更多详细信息,请参见这篇文章 。
  • JAAS(Java身份验证和授权服务) –身份验证和控制对服务的访问的手段。

J2EE 6附加概念

使用J2EE 6,可以使用Java源代码中的注释执行许多配置。

  • JAX-RS –定义类似REST服务的API。
  • 托管Bean –可以执行注入的Java对象。 在Spring中,这些对象将是带有@Autowired注释的属性的对象(例如)。
  • CDI(上下文和依赖注入) -实现和执行依赖注入的机制。 在Spring中,将提到应用程序上下文,控制反转(IoC)和依赖项注入(DI)。
  • Bean验证 –一种根据预定义规则确保Java Bean状态有效的方法。
  • JACC(容器的Java授权合同) –指定EE容器与授权提供者之间的关系和事务。
  • JASPIC(Java身份验证服务提供者接口) –这是JACC的补充身份验证SPI(即服务API)。 它定义了应用程序如何访问传统的身份验证服务。

总体而言,Spring和J2EE朝着同一方向缓慢收敛。

参考: 技术说明博客上的JCG合作伙伴 Jerome Versrynge 对JavaEE概念的介绍 。

翻译自: https://www.javacodegeeks.com/2013/02/introduction-to-javaee-concepts.html

javaee和javaee

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

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

相关文章

卷boot仅剩余XX空间

参见: https://blog.csdn.net/hnzcdy/article/details/52381844 转载于:https://www.cnblogs.com/lxc1910/p/11102528.html

python多分支结构实例_JS优化多分支结构(经典)

多分支结构的优化有很多好处:既方便代码维护,又可以提升代码执行效率。例如,设计有多个条件,只有当多个条件都成立时,才允许执行特定任务。示例1遵循简单的设计思路,使用多重分支逐个检测这些条件。if (a) …

matplotlib plt.plot

实例1 import matplotlib.pyplot as plta [1, 2, 3, 4] # y 是 a的值,x是各个元素的索引 b [5, 6, 7, 8]plt.figure(demon plot) plt.plot(a, b, r--, label aa) plt.xlabel(this is x) plt.ylabel(this is y) plt.title(this is a demo) plt.legend(locupper l…

使用UAA OAuth2授权服务器–客户端和资源

在上一篇文章中,我介绍了如何使用Cloud Foundry UAA项目启动OAuth2授权服务器,以及如何使用OAuth2授权代码流程中涉及的一些参与者来填充它。 我已经在Digital Ocean网站上找到了这篇文章,在描述OAuth2授权代码流方面做得非常好,…

二分查找思想

二分查找 二分查找思想应用于对有序的数组进行查找操作。 时间复杂度 二分查找也称为折半查找,每次都能将查找区间减半,这种折半特性算法时间复杂度为O(logn)。 mid计算 有两种计算中值mid的方式: m(lh)/2ml(h-l)/2lh可能出现加法溢出&#x…

ad20如何导入库_脱水防锈油如何使用才正确?

导Lead语根据调查了解,很多厂家在使用脱水防锈油的办法不正确而导致防锈效果失效或不明显。那么脱水防锈油应该如何使用才正确呢?中阳润滑油为大家简单讲述如下。脱水防锈油脱水防锈油是由矿物油及脱水、防锈抗氧化等多种添加剂配制而成,既可…

matplotlib  plt.lengend

参考文档 https://www.cnblogs.com/lfri/p/12248629.html 官方文档 https://matplotlib.org/api/_as_gen/matplotlib.pyplot.legend.html matplotlib plt.lengend 作用:用于给图像加图例。 1、语法参数如下: matplotlib.pyplot.legend(*args, **kwargs) 2、…

Python进阶(上下文管理器与with语句)

/*上下文管理器必须有__enter__和__exit__方法*/ class MyResource:def __enter__(self):print(链接资源)return self/*__exit__返回True表示异常只会在__exit__中被捕获,不会继续传递到with语句的之外的except中,如果返回false,则会把异常也…

matplotlib  plt.scatter

https://www.cnblogs.com/lfri/p/12248629.html matplotlib plt.scatter 作用:画散点图 plt.scatter() 参数如下: x,y X和Y是长度相同的数组 s size,点的大小,标量或与数据长度相同的数组 c color,点的颜色,标量或与数据长…

Git 备忘录

整理了一下工作中常用的 Git 操作,持续更新中...merge单个文件例如 B分支想要合并A分支的某个文件首先,我们切换到B分支 git checkout branch B之后,我们checkout A 分支的a文件,git checkout --patch A a路径 最后&#xff0c…

spark任务shell运行_大数据系列:Spark的工作原理及架构

介绍本Apache Spark教程将说明Apache Spark的运行时架构以及主要的Spark术语,例如Apache SparkContext,Spark shell,Apache Spark应用程序,Spark中的任务(Task),作业(job)和阶段(stage)。此外,我们还将学习…

使用RESTful Client API进行GET / POST

互联网上有很多如何使用RESTful Client API的东西。 这些是基础。 但是,尽管该主题看起来微不足道,但仍然存在一些障碍,尤其是对于初学者而言。 在这篇文章中,我将尝试总结我的专业知识,以及我如何在实际项目中做到这…

matplotlib plt.lengend图例放在图像的外侧

参考:https://www.jb51.net/article/186659.htm matplotlib plt.lengend图例放在图像的外侧 1、图例在图中实例 import numpy as np import matplotlib.pyplot as plt# 定义x,y X np.linspace(0, 2*np.pi, 32, endpointTrue) C np.cos(X)# figure的名称 plt.figur…

和搜狗输入法快捷键冲突_这款输入法被调教多年不输搜狗,爱了奥里给!

自从搜狗输入法被曝“推广门”之后,许多小伙伴开始寻找新的替代品。这期间,我也尝试了很多输入法,比如手心输入法、小狼毫输入法等。我以易用性、候选字质量和辅助输入功能三个方面作为考量标准,最终选定Win10默认的输入法&#x…

预期的异常规则和模拟静态方法– JUnit

今天,我被要求使用RESTful服务,所以我开始遵循Robert Cecil Martin的TDD规则实施该服务,并遇到了一种测试预期异常以及错误消息的新方法(对我来说至少是这样),因此考虑共享我的实现方式作为这篇文章的一部分…

Linux安装部署FTP服务器

Linux安装部署FTP服务器 本文章会将安装FTP服务器的步骤以及一些遇到的问题来记录下 因为项目中要与第三方对接数据,需要用到FTP服务器以提供他们每天上传数据,因为之前在本地的VMware虚拟机上部署过一次,这次则在天翼云上部署。 首先&#x…

广度优先搜索

转载 https://www.cnblogs.com/skywang12345/p/3711483.html 1. 广度优先搜索介绍 广度优先搜索算法(Breadth First Search),又称为"宽度优先搜索"或"横向优先搜索",简称BFS。 它的思想是:从图中某顶点v出发&#xff…

转https_免费!这个PPT转PDF的方法不学可惜!

职场人士对PPT演示文档都不陌生,尤其是商务、营销团队利用PPT向客户推荐产品、推广计划更是家常便饭。但是作为一个合格的商务营销人员,汇报、方案只保存PPT一种格式是远远不够的,因为经常在不同产地演示,而不同的设备可能对不同版…

深度优先搜索

转载:https://www.cnblogs.com/skywang12345/p/3711483.html 深度优先搜索 1. 深度优先搜索介绍 图的深度优先搜索(Depth First Search),和树的先序遍历比较类似。 它的思想:假设初始状态是图中所有顶点均未被访问,则从某个顶点…

jvm类加载机制和类加载器_在JVM之下–类加载器

jvm类加载机制和类加载器在许多开发人员中,类加载器是Java语言的底层,并且经常被忽略。 在ZeroTurnaround上 ,我们的开发人员必须生活,呼吸,饮食,喝酒,并且几乎与类加载器保持亲密关系&#xff…