javaee三大组件是啥
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javaee三大组件是啥相关的知识,希望对你有一定的参考价值。
参考技术A javase 还有javaweb servlet+jsp 参考技术B Servlet,JSP,EJBServlet(Server Applet),全称Java Servlet,未有中文译文。是用Java编写的服务器端程序。其主要功能在于交互式地浏览和修改数据,生成动态Web内容。狭义的Servlet是指Java语言实现的一个接口,广义的Servlet是指任何实现了这个Servlet接口的类,一般情况下,人们将Servlet理解为后者。
Servlet运行于支持Java的应用服务器中。从实现上讲,Servlet可以响应任何类型的请求,但绝大多数情况下Servlet只用来扩展基于HTTP协议的Web服务器。
JSP全名为Java Server Pages,中文名叫java服务器页面,其根本是一个简化的Servlet设计,它[1] 是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。JSP技术有点类似ASP技术,它是在传统的网页html(标准通用标记语言的子集)文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件,后缀名为(*.jsp)。 用JSP开发的Web应用是跨平台的,既能在Linux下运行,也能在其他操作系统上运行。
它实现了Html语法中的java扩展(以 <%, %>形式)。JSP与Servlet一样,是在服务器端执行的。通常返回给客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览。
EJB是sun的JavaEE服务器端组件模型,设计目标与核心应用是部署分布式应用程序。简单来说就是把已经编写好的程序(即:类)打包放在服务器上执行。凭借java跨平台的优势,用EJB技术部署的分布式系统可以不限于特定的平台。EJB (Enterprise JavaBean)是J2EE(javaEE)的一部分,定义了一个用于开发基于组件的企业多重应用程序的标准。其特点包括网络服务支持和核心开发工具(SDK)。 在J2EE里,Enterprise Java Beans(EJB)称为Java 企业Bean,是Java的核心代码,分别是会话Bean(Session Bean),实体Bean(Entity Bean)和消息驱动Bean(MessageDriven Bean)。
Java EE 到底是啥?
【中文标题】Java EE 到底是啥?【英文标题】:What exactly is Java EE?Java EE 到底是什么? 【发布时间】:2011-11-09 20:09:57 【问题描述】:我已经从事 Java SE 多年,然后转向 Java EE。但是,我在理解 Java EE 的某些方面时遇到了一些麻烦。
Java EE 只是一个规范吗?我的意思是:EJB 是 Java EE 吗?
EJB/Spring 是 Java EE 的不同实现吗?
很抱歉,我很难理解 Java EE 是什么。
谁能解释一下 Java EE 是什么?还有 EJB?
【问题讨论】:
检查***.com/questions/1286019/starting-java-ee-mvc 你应该把这个问题分成两个问题,一个是重复的,另一个我认为那里的链接没有回答。 其实你看过[java-ee]tag wiki吗? 另请阅读:***.com/questions/106820/what-is-java-ee 还有:who-implement-the-specification 【参考方案1】:您需要了解的有关 Java EE 的所有信息都可以通过 @Oracle official website 等找到。您可能还会对阅读specification APIs for release 8 感兴趣。值得花时间浏览Java EE 8 tutorial。您可能想从实际开始,因为它提供了对整个平台的非常好的概览。
【讨论】:
【参考方案2】:J2EE/JEE/雅加达 EE
Java Enterprise Edition (JEE) 用于开发分布式应用程序& 网络服务。 这是一种基于组件的 Web 应用开发方法。 JEE Web 应用程序被视为 3 层应用程序,因为它分为 3 不同的机器/层 客户(演示) J2EE 服务器(应用程序/业务) 数据库(数据访问)【讨论】:
【参考方案3】:(2021 年 4 月更新)
首先,自 2019 年 9 月起,“Java EE”已重命名为“Jakarta EE”,从版本 8 开始。历史上,“J2EE”一词也涵盖了 1.2 版,直到1.4. “Java EE”涵盖了版本 5 到 8。另请参阅 Java Platform, Enterprise Edition, History on Wikipedia。
Jakarta EE 只是一个规范吗?我的意思是:EJB Jakarta EE 吗?
Jakarta EE 确实是一个抽象规范。任何人都愿意开发并提供规范的工作implementation。 具体实现是所谓的应用服务器,如WildFly、TomEE、GlassFish、Liberty、WebLogic等。还有一些servlet容器只实现庞大的 Jakarta EE API 的 JSP/Servlet 部分,如Tomcat、Jetty 等。
我们,Jakarta EE 开发人员,应该使用规范编写代码(即仅在我们的代码中导入 jakarta.*
类,而不是实现特定类,例如 org.jboss.wildfly.*
、com.sun.glassfish.*
等)然后我们将能够在任何实现上运行我们的代码(因此,在任何应用程序服务器上)。如果您熟悉 JDBC,它与 JDBC 驱动程序的工作原理基本相同。另见 a.o. In simplest terms, what is a factory?
EJB 是 Jakarta EE 规范的一部分。看,it's in the Jakarta EE API。成熟的 Jakarta EE 应用服务器开箱即用地支持它,但简单的 JSP/Servlet 容器不支持。
另见:
Where can I find a list of all the reference implementations for Java EE 6? Java / Jakarta EE web development, where do I start and what skills do I need? What to learn for making Java web applications in Java EE 6?EJB/Spring 是 Jakarta EE 的不同实现吗?
不,如上所述,EJB 是 Jakarta EE 的一部分。 Spring 是一个独立的框架,它替代并改进了 Jakarta EE 的许多部分。 Spring 不一定需要 Jakarta EE 才能运行。像 Tomcat 这样的基本 servlet 容器已经足够了。简单来说,Spring 是 Jakarta EE 的竞争对手。例如。 “Spring”(独立)竞争 EJB/JTA,Spring MVC 竞争 JSF/JAX-RS/MVC,Spring DI/IoC/AOP 竞争 CDI,Spring Security 竞争 JAAS/JASPIC 等等。
在旧的 J2EE/EJB2 时代,EJB2 API 的实现和维护都很糟糕。 Spring 是 EJB2 的一个更好的替代品。但是从 EJB3 (Java EE 5) 开始,EJB API 基于从 Spring 中吸取的教训得到了很大改进。自 CDI (Java EE 6) 以来,没有真正的理由再次查看像 Spring 这样的另一个框架,以使开发人员更容易开发服务层。
只有当您使用 Tomcat 之类的基本 servlet 容器并且无法迁移到 Jakarta EE 服务器时,Spring 才更有吸引力,因为它更容易在 Tomcat 上安装 Spring。无法安装,例如Tomcat 上的 EJB 容器,无需修改服务器本身,您基本上就是在重新发明 TomEE。
另见:
When is it necessary or convenient to use Spring or EJB3 or all of them together? Java EE 6 vs. Spring 3 stack Using JSF as view technology of Spring MVC【讨论】:
那么 Java EE 可以说是定义了运行典型 JEE 应用程序应该存在哪些支持? @James:是的。 Java EE API 中几乎所有的东西都是抽象的。 Java SE API 也有几个抽象部分,例如JDBC、JAXP、JAXB 等 “没有真正的理由再次考虑像 Spring 这样的另一个框架来使开发人员更容易。” -> 真正有价值的信息。 @BalusC:您好,Sun Java EE 官方是不是...链接已损坏,如果您提供类似的链接,将对某人有所帮助。 要运行完整的Spring框架,Servlet容器就足够了,Servlet容器是[web server + web container(implements servlet api)],而要运行Java EE,你需要像Glassfish这样的应用服务器。 Servlet 容器是不够的。 Servlet 容器是应用服务器的一个子集。我怎么理解这个?【参考方案4】:简单地说——JavaEE 是一个平台。
它由许多只是 API 的规范组成。这些 API 的具体具体实现就是所谓的“参考实现”
-
EJB 只是 JavaEE 平台中的一种规范
不,Spring 是一个应用程序框架,可以让您/已经支持您开发 JavaEE 应用程序
EJB 是企业 Java Bean
【讨论】:
此答案不会对以前的答案添加任何内容。此外,它也不准确:只有一个具体实现是 Reference,其他都不是。次要一:Spring与JavaEE集成,但没有它也能正常工作。 @tair 是的,只有 1 个具体实现被视为“参考”,例如JPA 有许多实现,但只有 EclipseLink 是 RI。当我提到 RI 时,我的意思是跨越不同的 API。我想你误解了我上面的回答。另外,是的,Spring 与我上面提到的 JavaEE 集成。【参考方案5】:Source -- Java 2 Platform, Enterprise Edition (J2EE) 定义了开发基于组件的多层企业应用程序的标准。 J2EE 简化了构建可移植、可扩展且易于与遗留应用程序和数据集成的企业应用程序。
Source -- Enterprise JavaBeans (EJB) 技术是 Java Platform, Enterprise Edition (Java EE) 的服务器端组件架构。 EJB 技术支持基于 Java 技术的分布式、事务性、安全和可移植应用程序的快速和简化开发。
Java EE 只是一个规范吗?我的意思是:EJB 是 Java EE 吗?
Java EE 是一种规范。
EJB 是 Java EE 的服务器端组件架构
EJB 和 Spring 都是遵循 Java EE 的不同框架。EJB/Spring 是 Java EE 的不同实现吗?
【讨论】:
从规范的古代版本 (J2EE) 中引用古代文本 (2005) 可能不是很有用。 OP 专门要求 Java EE,它是 J2EE 的现代化身。【参考方案6】:Java Enterprise Edition (Java EE) 是一个综合规范,它引用了许多其他更详细的规范,其中 Enterprise JavaBeans (EJB) 是其中最重要的规范之一。
阅读this - 它解释了 Java EE 和 Spring 之间的区别
谢谢...
【讨论】:
以上是关于javaee三大组件是啥的主要内容,如果未能解决你的问题,请参考以下文章