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软件应用程序,旨在在用户的浏览器中运行。 小程序与Javascript竞争。
    • 应用程序客户端 –例如,用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组件的部署位置(即,在应用程序服务器上)。 其中一个定义了包含servlt和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

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

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

相关文章

js php 数据类型判断,【js基础】变量类型判断

类型判断方法比较:如果需要想详细了解,请看下文:注:原封不动复制备份,防止删帖在JavaScript中,有5种基本数据类型和1种复杂数据类型,基本数据类型有:Undefined, Null, Boolean, Number和String&…

HTML阻止iframe跳转页面并使用iframe在页面内嵌微信网页版

昨天看到这篇文章[置顶]开源组件NanUI一周年 - 使用HTML/CSS/JS来构建.Net Winform应用程序界面 就想弄一个winform结合html5的一个小东西,突有兴致,想在里面嵌套一个微信网页版。 好了,想法一出来,就行动吧,最终效果…

标准模板库(STL)学习指南之set集合

set是关联容器。其键值就是实值,实值就是键值,不可以有重复,所以我们不能通过set的迭代器来改变set的元素的值,set拥有和list相同的特性:当对他进行插入和删除操作的时候,操作之前的迭代器依然有效。当然删…

CSS布局技巧之——各种居中

居中是我们使用css来布局时常遇到的情况。使用css来进行居中时,有时一个属性就能搞定,有时则需要一定的技巧才能兼容到所有浏览器,本文就居中的一些常用方法做个简单的介绍。 注:本文所讲方法除了特别说明外,都是兼容…

OpenJPA:内存泄漏案例研究

本文将提供完整的根本原因分析详细信息以及解决影响Oracle Weblogic Server 10.0生产环境的Java堆内存泄漏(Apache OpenJPA泄漏)的方法。 这篇文章还将演示在管理javax.persistence.EntityManagerFactory生命周期时遵循Java Persistence API最佳实践的重…

以A表中的值快速更新B表中记录的方法

1、问题描述 有两张表,A表记录了某些实体的新属性,B表记录了每个实体的旧属性,现在打算用A中的属性值去更新B中相同实体的旧属性,如下图所示: 类似这样的需求,怎样做比较高效呢? 2、制作模拟数…

JAXB教程–入门

注意:请查看我们的Java XML绑定JAXB教程– ULTIMATE指南 什么是JAXB? JAXB代表用于XML绑定的Java体系结构。它用于将XML转换为java对象,并将java对象转换为XML。JAXB定义了一个用于在XML文档中读写Java对象的API。与SAX和DOM不同&#xff0c…

《Kubernetes权威指南第2版》学习(二)一个简单的例子

1: 安装VirtualBox, 并下载CentOS-7-x86_64-DVD-1708.iso, 安装centOS7,具体过程可以百度。 2:开启centOS的SSH, 步骤如下: (1) yum list installed | grep openssh-server查看是否已经安装了SS…

linux 安装ftp下载,LINUX FTP安装与配置

转载了一篇配置vsftpd服务器的文章,经过自己的配置,终于搞定了!1.安装vsftpdXml代码 yum install vsftpd2.启动/重启/关闭vsftpd服务器Xml代码 [rootlocalhost ftp]# /sbin/service vsftpd restartShutting down vsftpd: [ OK ]Starting vs…

使用Hibernate批量获取

如果需要从Java处理大型数据库结果集,则可以选择JDBC,以提供所需的低级控制。 另一方面,如果您已在应用程序中使用ORM,则回退到JDBC可能意味着额外的麻烦。 在域模型中导航时,您将失去乐观锁定,缓存&#x…

前端经典面试题 不经典不要star!

前言 (以下内容为一个朋友所述)今天我想跟大家分享几个前端经典的面试题,为什么我突然想写这么一篇文章呢?今天我应公司要求去面试了下几位招聘者,然后又现场整不出几个难题,就搜了一下前端变态面试题! HAHA,前提我并不是一个变态,欺负人的面试官.只是我希望看看对…

Web前端开发学习误区,你掉进去了没?

从接触网站开发以来到现在,已经有五个年头了吧,今天偶然整理电脑资料看到当时为参加系里面一个比赛而做的第一个网站时,勾起了在这网站开发道路上的一串串回忆,成功与喜悦、烦恼与纠结都历历在目,感慨颇多。 先从大家学…

spring mvc的工作原理

该文转载自:http://blog.csdn.net/u012191627/article/details/41943393 SpringMVC框架介绍 1) spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。 Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。使用 Spring 可插入的…

使用IntelliJ IDEA的原因

介绍 我经常遇到一个问题,为什么我使用Intellij来支持另一个IDE(在本例中为Eclipse)。 大多数时候,我会通过演示IntelliJ的某些功能并展示一切的集成程度来回答这个问题。 这让我开始思考使用它的真正原因是什么。 这篇文章将试图…

linux光标美化包,使用 [ powerlevel10k ] 美化你的WSL (Linux)

使用 [ powerlevel10k ] 美化你的WSL (Linux)使用 [ powerlevel10k ] 美化你的WSL (Linux)前言关于linux终端的美化,网上的教程有很多,但对于国内的用户来说,效果往往是这样的:教程中通过以下命令安装 oh-my-zshsh -c "$(cur…

HashMap实现原理分析

1 HashMap的数据结构 数据结构中有数组和链表来实现对数据的存储,但这两者基本上是两个极端。 数组 数组存储区间是连续的,占用内存严重,故空间复杂的很大。但数组的二分查找时间复杂度小,为O(1);数组的特点是&#xf…

opencv3.2.0在vs2015下安装与配置

准备工作 VS2015OpenCV 3.2.0OpenCV配置环境变量,path下添加\opencv\build\x64\vc14\bin,新设置的环境变量需要重启才能使用测试工程 新建VC控制台空项目修改平台为x64,这一步先做源文件中加入main.cpp,测试代码:#incl…

如何使用字节序列化双精度数组(二进制增量编码,用于低差单调浮点数据集)...

低延迟系统需要高性能的消息处理和传递。 由于在大多数情况下,数据必须通过有线传输或进行序列化才能保持持久性,因此编码和解码消息已成为处理管道的重要组成部分。 高性能数据编码的最佳结果通常涉及应用程序数据细节的知识。 本文介绍的技术是一个很好…

微信小程序 引入公共页面的几种情况

1、不带参数 首先在pages文件夹中新建一个template文件夹&#xff0c;文件夹中新建一个template.wxml文件&#xff0c;代码如下 <!--template.wxml--> <template name"msgItem"><view><text>This is template.wxml文件&#xff0c;我是一个…

易语言自定义数据类型转c,一步一步跟我学易语言之自定义数据类型

自定义数据类型什么是“自定义数据类型”&#xff1f;顾名思义&#xff0c;就是用户可以随时在程序中自行定义新的数据类型。自定义数据类型时需要设置数据类型的名称及其成员。数据类型成员各属性的设置方法等同于变量设置时相应属性的设置方法。双击“程序”中的“自定义数据…