javaEE和javaweb的区别

javaEE和javaweb的区别JavaEEJavaEE 指的是一套规范 也可以认为是遵循 JavaEE 规范 使用 JavaSE 实现的技术和框架 例如 JavaSE 包含 socket 的内容 JavaEE 则是提出 JSR902 JSR903 规范 按照规范中的要求把 socket 封装成 Servlet 供直接使用 JavaSE 包含 annotation 和自定义注解 API PluggableAnn 的内容 JavaEE 则是提出 JSR269 规范 所有框架中定义的注解都必须符合该规范 典型的例如 lombok 中的

JavaEE

JavaEE 概念

网上一般会讲JavaEE的13个规范,实际上JavaEE 7 规范不止13个,加粗的是实现了这些规范的框架:

Web层

提供Web交互,数据传输等方面的组件

  1. 关注于为客户端生成各种格式内容的视图模块:JSP JSTL EL JSF
  2. 关注于Web实时交互的模块:WebSocket Java API——SpringBoot框架
  3. 关注于提供Web服务的Java Web Service模块:JAX-WS JAX-RS——SpringBoot框架
  4. 关注于交互数据规范的模块:JSON-P JAXB
  5. 关注于Web请求和响应的模块:Servlet——SpringBoot框架

企业信息层(EIS)

提供与其他企业中间件或服务交互的组件

  1. 关注于与数据库交互的模块:JDBC——Hibernate框架、SpringData Jpa框架
  2. 关注于Java持久化的模块:JPA——Hibernate框架、SpringData Jpa框架
  3. 关注于Java信息服务的模块:JMS——ActiveMq消息中间件
  4. 关注于Mail服务的模块:JavaMail API
  5. 关注于与遗留系统交互的模块:JCA
  6. 关注于执行批量任务的模块:Batch——Spring Batch3.0批处理框架

通用(Common)

提供公用组件

  1. 关注于上下文与依赖注入的模块:CDI——Spring框架
  2. 关注于整合安全的模块:JACC JASP JAAS
  3. 关注于JavaEE平台规范注解的模块:JavaEE通用注解(JavaEE common Annotation)
  4. 关注于数据校验的模块:Bean验证API(Bean Validation)——Hibernate Validator验证框架
  5. 关注于JavaEE管理的模块:JavaEE管理API(JavaEE Management API)
  6. 关注于提供查找组件,资源或服务的间接层模块:JNDI

业务层(Core)

提供简化业务逻辑编写的组件

  1. 关注于用于开发可移植,可重用,可伸缩的企业应用编程模型:EJB
  2. 关注于用于开发简化的,轻量级的,容器管理的,基于POJO的编程模型:托管Beans(Managed Beans)
  3. 关注于提供面向切面编程的模块:拦截器API(Interceptor)
  4. 关注于提供事务管理的模块:JTA
  5. 关注于优化并发编程的模块:JavaEE并发工具包(Concurrency Utilities for Java EE)

只要知道了JavaEE包含哪些规范,就能知道自己大概要掌握哪些技术了。

PS:用Bean Validation框架校验真的很省事啦~

JavaSE

JavaEE 与 JavaSE 的区别与联系

JavaEE和JavaWeb的区别

JavaEE的技术包括两个部分,开发B/S架构(网站)和C/S架构(客户端)的内容,也就相当于网页版和桌面客户端的区别,B/S架构的那一套也就是我们所说的JavaWeb,C/S架构也就是桌面应用(客户端),所以说JavaEE包含了JavaWEB,这也就是JavaEE和JavaWeb的区别。

同样的,对于JavaWeb服务器和JavaEE服务器的区别,tomcat是JavaWeb服务器,tomEE是JavaEE服务器,tomEE包含tomcat。

使用Java开发的桌面客户端比较少,最有名的要属Eclipse了,Eclipse就是用java开发的桌面应用。至于为什么java很少用来开发桌面应用,这又是一个具有争议话题了。

JavaEE与Java 的关系

Java刚开始的时候,因为各种应用和生态不成熟,很多东西需要有人牵头制定强制规范引导Java的发展,于是Java EE曾经引领了企业级应用的开发。

但随着时代的进步,以及越来越多的公司和组织参与到Java世界,出现了各种各样的Java EE组件的代替者,比如Hibernate、Spring就是其中两个典型。相反,Java官方制定的各种Java EE规范反而不太受欢迎,他们制定了JSF规范,但实际企业开发喜欢用Struts 2、Spring MVC;他们制定了EJB规范,但实际企业开发往往还是喜欢用Spring;他们制定了JPA规范,但实际企业开发往往还是喜欢直接用Hibernate、MyBatis。

现代企业级应用常用的各种框架和工具,比如Struts 2、Spring、Hibernate、jBPM、Activiti、Lucene、Hadoop、Drools、CXF等这些大家耳熟能详的组件,全部都不是来自Oracle官方,但是却在企业应用中开发经常用到的。

现在企业里面,真正常用的JavaEE规范有什么?Servlet、JSP、JMS、JNDI。这些技术都只是充当了一个程序的入口而已。

Oracle之所以可能考虑放弃Java EE,正体现了Oracle对丧失Java控制权的无奈。企业的本质是逐利,Oracle每年为制定Java EE规范投入不少人力、财力,但制定的规范最终并没有获得市场的青睐,所以Oracle可能放弃这种吃亏不讨好的事情。

但Java不同,2016年6月,Java在商业语言排行榜上的市场份额将近21%,庞大到恐怖的市场份额,背后隐藏着巨大各种专利使用费和盈利商机,任何一个理智的公司都不会放弃这个会下金蛋的母鸡。

由此可见,oracle上提供的java EE是官方指定的javaEE规范,里面都是符合官方指定的javaEE组件,我们用SSM,SSH开发后台时使用到的只有Servlet、JSP、JMS等少量的java EE规范,没有必要使用orcale提供的java EE版本,直接使用jdk就可以(当然还需要maven等管理第三方的jar包来实现功能)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/217198.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月18日 上午10:07
下一篇 2026年3月18日 上午10:08


相关推荐

  • OAM协议详解_服务期限怎么填写

    OAM协议详解_服务期限怎么填写OAMPDU消息格式及定义OAMPDU消息的格式如下图6-8所示。各个字段的详细定义如下:a) 目的地址(DA):Slow_Protocols_Multicast地址,使用和编码规定见IEEE802.3-2005Annex43B;b) 源地址(SA):OAMPDU中的SA是独立的MAC地址,该地址与发送OAMPDU的端口相关联;c) Length/Type:OAMPDU采

    2025年8月8日
    2
  • pycharm设置开发模板

    pycharm设置开发模板pycharm 设置开发模板可能大家会有一些疑问 什么是模板 为什么要设置模板的呢 模板就是一种通用的格式 如果在 pycharm 中设置了模板 那么每次创建一个 python 文件的时候都会自动包含模板中的内容 示例 python3 默认采用的是 ASCII 编码 如果只含有英文没有问题 一旦有中文乱码 解决办法 需要在文件最开始添加 UTF 8 编码 支持中文 代码如下 usr bin envpy

    2026年3月27日
    1
  • C#中的invoke方法

    C#中的invoke方法在用.NETFramework框架的WinForm构建GUI程序界面时,如果要在控件的事件响应函数中改变控件的状态,例如:某个按钮上的文本原先叫“打开”,单击之后按钮上的文本显示“关闭”,初学者往往会想当然地这么写:voidButtonOnClick(objectsender,EventArgse){    button.Text=”关闭”;}这样的

    2022年5月22日
    266
  • 成功的背后!(给所有IT人)zz

    成功的背后!(给所有IT人)zz一篇很好的文章 建议想成功的 IT 人士一气读完吆 肯定有所收获的 特别对 IT 刚入行的新人 nbsp 成功的背后 有着许多不为人知的故事 而正是这些夹杂着泪水和汗水的过去 才成就了一个个走向成功的普通人 nbsp 凌晨两点半 早已习惯了一个人坐在电脑前的我 望着屏幕 任思绪在暗夜的包容下静静流淌 时光仿佛又定格在三年多前的那一刻 283 分 那是被中国万千学子称为 黑色七月 中的一天 下班

    2026年3月16日
    2
  • 保姆级教程:10分钟用DeepSeek+AnythingLLM搭建AI知识库

    保姆级教程:10分钟用DeepSeek+AnythingLLM搭建AI知识库

    2026年3月16日
    1
  • JS页面跳转页面大全

    JS页面跳转页面大全JS 页面跳转大全所谓的 js 页面跳转就是利用 javesrcipt 对打开的页面 ULR 进行跳转 如我们打开的是 A 页面 通过 javsrcipt 脚本就会跳转到 B 页面 目前很多垃圾站经常用 js 跳转将正常页面跳转到广告页面 当然也有一些网站为了追求吸引人的视觉效果 把一些栏目链接做成 js 链接 但这是一个比较严重的蜘蛛陷阱 无论是 SEO 人员还是网站设计人员应当尽力避免 常用的 JS 页面跳转代码调用大全 马海祥

    2026年3月17日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号