日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

javaEE和javaweb的区别

發布時間:2024/3/12 编程问答 55 豆豆
生活随笔 收集整理的這篇文章主要介紹了 javaEE和javaweb的区别 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

JavaEE

JavaEE 概念

Java EE,Java 平臺企業版(Java Platform Enterprise Edition),之前稱為Java 2 Platform, Enterprise Edition (J2EE),2018年3月更名為 Jakarta EE(這個名稱應該還沒有得到群眾認可)。是 Sun 公司為企業級應用推出的標準平臺,用來開發B/S架構軟件。JavaEE指的是一套規范,也可以認為是遵循JavaEE規范、使用JavaSE實現的技術和框架。
JavaEE 是 Java 應用最廣泛的部分。

例如:
JavaSE包含socket的內容,JavaEE則是提出JSR902、JSR903規范,按照規范中的要求把socket封裝成Servlet供直接使用;
JavaSE包含annotation和自定義注解API(Pluggable Annotation Processing API)的內容,JavaEE則是提出JSR269規范,所有框架中定義的注解都必須符合該規范,典型的例如lombok中的@Getter/@Setter注解就是符合JSR269規范的,當然你也可以依據JSR269的要求,自己實現一個@Getter/@Setter注解;
這就是JavaEE和JavaSE的區別,目前官網上最新的是JavaEE7的內容:
JavaEE7

網上一般會講JavaEE的13個規范,實際上JavaEE 7 規范不止13個,加粗的是實現了這些規范的框架:

Web層

提供Web交互,數據傳輸等方面的組件

  • 關注于為客戶端生成各種格式內容的視圖模塊:JSP JSTL EL JSF
  • 關注于Web實時交互的模塊:WebSocket Java API——SpringBoot框架
  • 關注于提供Web服務的Java Web Service模塊:JAX-WS JAX-RS——SpringBoot框架
  • 關注于交互數據規范的模塊:JSON-P JAXB
  • 關注于Web請求和響應的模塊:Servlet——SpringBoot框架
  • 企業信息層(EIS)

    提供與其他企業中間件或服務交互的組件

  • 關注于與數據庫交互的模塊:JDBC——Hibernate框架、SpringData Jpa框架
  • 關注于Java持久化的模塊:JPA——Hibernate框架、SpringData Jpa框架
  • 關注于Java信息服務的模塊:JMS——ActiveMq消息中間件
  • 關注于Mail服務的模塊:JavaMail API
  • 關注于與遺留系統交互的模塊:JCA
  • 關注于執行批量任務的模塊:Batch——Spring Batch3.0批處理框架
  • 通用(Common)

    提供公用組件

  • 關注于上下文與依賴注入的模塊:CDI——Spring框架
  • 關注于整合安全的模塊:JACC JASP JAAS
  • 關注于JavaEE平臺規范注解的模塊:JavaEE通用注解(JavaEE common Annotation)
  • 關注于數據校驗的模塊:Bean驗證API(Bean Validation)——Hibernate Validator驗證框架
  • 關注于JavaEE管理的模塊:JavaEE管理API(JavaEE Management API)
  • 關注于提供查找組件,資源或服務的間接層模塊:JNDI
  • 業務層(Core)

    提供簡化業務邏輯編寫的組件

  • 關注于用于開發可移植,可重用,可伸縮的企業應用編程模型:EJB
  • 關注于用于開發簡化的,輕量級的,容器管理的,基于POJO的編程模型:托管Beans(Managed Beans)
  • 關注于提供面向切面編程的模塊:攔截器API(Interceptor)
  • 關注于提供事務管理的模塊:JTA
  • 關注于優化并發編程的模塊:JavaEE并發工具包(Concurrency Utilities for Java EE)
  • 關于JavaSE規范和JavaEE規范,參考:
    JavaSE規范,Java規范,JSR規范全面整理

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

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

    JavaSE

    $java_home/jre/lib/rt.jar里的全部內容,比如java目錄下的lang包、util包、io/nio包等14個包的內容,一般是一些基礎類庫,例如包裝類、collection、concurrent并發包、函數式接口、反射、注解等,簡單粗暴的講,JavaSE就是jdk包含的內容;

    JavaEE 與 JavaSE 的區別與聯系

    JavaEE 是在 JavaSE 的基礎上構建的,是對 JavaSE 的擴展,增加了一些更加便捷的應用框架。除了 EE 和 SE,還有為移動端而生的 JavaME,但目前應用不算廣泛。三者的關系可以用下圖概括:

    JavaEE和JavaWeb的區別

    JavaEE的技術包括兩個部分,開發B/S架構(網站)和C/S架構(客戶端)的內容,也就相當于QQ網頁版和QQ桌面客戶端的區別,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包來實現功能)

    總結

    以上是生活随笔為你收集整理的javaEE和javaweb的区别的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。