Ⅰ j2ee都包括什麼
什麼是J2EE呢?從整體上講,J2EE是使用Java技術開發企業級應用的一種事實上的工業標准(Sun公司出於其自身利益的考慮,至今沒有將Java及其相關技術納入標准化組織的體系),它是Java技術不斷適應和促進企業級應用過程中的產物。目前,Java平台有三個版本:適用於小型設備和智能卡的J2ME(Java 2 Platform Micro Edition)、適用於桌面系統的J2SE和適用於企業級應用的J2EE。Sun推出J2EE的目的是為了克服傳統Client/Server模式的弊病,迎合Browser/Server架構的潮流,為應用Java技術開發伺服器端應用提供一個平台獨立的、可移植的、多用戶的、安全的和基於標準的企業級平台,從而簡化企業應用的開發、管理和部署。J2EE是一個標准,而不是一個現成的產品。各個平台開發商按照J2EE規范分別開發了不同的J2EE應用伺服器,J2EE應用伺服器是J2EE企業級應用的部署平台。由於它們都遵循了J2EE規范,因此,使用J2EE技術開發的企業級應用可以部署在各種J2EE應用伺服器上。
為了推廣並規范化使用J2EE架構企業級應用的體系架構,Sun同時給出了一個建議性的J2EE應用設計模型:J2EE Blueprints。J2EE Blueprints提供了實施J2EE企業級應用的體系架構、設計模式和相關的代碼,通過應用J2EE Blueprints所描述的體系模型,能夠部分簡化架構企業級應用這項復雜的工作。J2EE Blueprints是開發人員設計和優化J2EE組件的基本原則,同時為圍繞開發工作進行職能分工給出了指導性策略,以幫助應用開發設計人員合理地分配技術資源。
下面我們參照J2EE Blueprints,結合最新版的J2EE規范(J2EE 1.4),從整體上闡述如何使用J2EE架構企業級應用。
圖2給出了使用J2EE架構企業級應用的體系架構。J2EE將組成一個完整企業級應用的不同部分納入不同的容器(Container),每個容器中都包含若干組件(這些組件是需要部署在相應容器中的),同時各種組件都能使用各種J2EE Service/API。J2EE容器包括:
◆ Web容器伺服器端容器,包括兩種組件JSP和Servlet,JSP和Servlet都是Web伺服器的功能擴展,接受Web請求,返回動態的Web頁面。Web容器中的組件可使用EJB容器中的組件完成復雜的商務邏輯。
◆ EJB容器 伺服器端容器,包含的組件為EJB(Enterprise JavaBeans),它是J2EE的核心之一,主要用於伺服器端的商業邏輯的實現。EJB規范定義了一個開發和部署分布式商業邏輯的框架,以簡化企業級應用的開發,使其較容易地具備可伸縮性、可移植性、分布式事務處理、多用戶和安全性等。
◆ Applet容器客戶端容器,包含的組件為Applet。Applet是嵌在瀏覽器中的一種輕量級客戶端,一般而言,僅當使用Web頁面無法充分地表現數據或應用界面的時候,才使用它。Applet是一種替代Web頁面的手段,我們僅能夠使用J2SE開發Applet,Applet無法使用J2EE的各種Service和API,這是為了安全性的考慮。
◆ Application Client容器 客戶端容器,包含的組件為Application Client。Application Client相對Applet而言是一種較重量級的客戶端,它能夠使用J2EE的大多數Service和API。
通過這四個容器,J2EE能夠靈活地實現前面描述的企業級應用的架構。
在View部分,J2EE提供了三種手段:Web容器中的JSP(或Servlet)、Applet和Application Client,分別能夠實現面向瀏覽器的數據表現和面向桌面應用的數據表現。Web容器中的Servlet是實現Controller部分業務流程式控制制的主要手段;而EJB則主要針對Model部分的業務邏輯實現。至於與各種企業資源和企業級應用相連接,則是依靠J2EE的各種服務和API。
在J2EE的各種服務和API中,JDBC和JCA用於企業資源(各種企業信息系統和資料庫等)的連接,JAX-RPC、JAXR和SAAJ則是實現Web Services和Web Services連接的基本支持。
J2EE的各種組件
我們就J2EE的各種組件、服務和API,進行更加詳細的闡述,看看在開發不同類型的企業級應用時,根據各自需求和目標的不同,應當如何靈活使用並組合不同的組件和服務。
· Servlet
Servlet是Java平台上的CGI技術。Servlet在伺服器端運行,動態地生成Web頁面。與傳統的CGI和許多其它類似CGI的技術相比,Java Servlet具有更高的效率並更容易使用。對於Servlet,重復的請求不會導致同一程序的多次轉載,它是依靠線程的方式來支持並發訪問的。
· JSP
JSP(Java Server Page)是一種實現普通靜態HTML和動態頁面輸出混合編碼的技術。從這一點來看,非常類似Microsoft ASP、PHP等技術。藉助形式上的內容和外觀表現的分離,Web頁面製作的任務可以比較方便地劃分給頁面設計人員和程序員,並方便地通過JSP來合成。在運行時態,JSP將會被首先轉換成Servlet,並以Servlet的形態編譯運行,因此它的效率和功能與Servlet相比沒有差別,一樣具有很高的效率。
· EJB
EJB定義了一組可重用的組件:Enterprise Beans。開發人員可以利用這些組件,像搭積木一樣建立分布式應用。在裝配組件時,所有的Enterprise Beans都需要配置到EJB伺服器(一般的Weblogic、WebSphere等J2EE應用伺服器都是EJB伺服器)中。EJB伺服器作為容器和低層平台的橋梁管理著EJB容器,並向該容器提供訪問系統服務的能力。所有的EJB實例都運行在EJB容器中。EJB容器提供了系統級的服務,控制了EJB的生命周期。EJB容器為它的開發人員代管了諸如安全性、遠程連接、生命周期管理及事務管理等技術環節,簡化了商業邏輯的開發。EJB中定義了三種Enterprise Beans:
◆ Session Beans
◆ Entity Beans
◆ Message-driven Beans
· JDBC
JDBC(Java Database Connectivity,Java資料庫連接)API是一個標准SQL(Structured Query Language,結構化查詢語言)資料庫訪問介面,它使資料庫開發人員能夠用標准Java API編寫資料庫應用程序。JDBC API主要用來連接資料庫和直接調用SQL命令執行各種SQL語句。利用JDBC API可以執行一般的SQL語句、動態SQL語句及帶IN和OUT參數的存儲過程。Java中的JDBC相當與Microsoft平台中的ODBC(Open Database Connectivity)。
· JMS
JMS(Java Message Service,Java消息服務)是一組Java應用介面,它提供創建、發送、接收、讀取消息的服務。JMS API定義了一組公共的應用程序介面和相應語法,使得Java應用能夠和各種消息中間件進行通信,這些消息中間件包括IBM MQ-Series、Microsoft MSMQ及純Java的SonicMQ。通過使用JMS API,開發人員無需掌握不同消息產品的使用方法,也可以使用統一的JMS API來操縱各種消息中間件。通過使用JMS,能夠最大限度地提升消息應用的可移植性。 JMS既支持點對點的消息通信,也支持發布/訂閱式的消息通信。
· JNDI
由於J2EE應用程序組件一般分布在不同的機器上,所以需要一種機制以便於組件客戶使用者查找和引用組件及資源。在J2EE體系中,使用JNDI(Java Naming and Directory Interface)定位各種對象,這些對象包括EJB、資料庫驅動、JDBC數據源及消息連接等。JNDI API為應用程序提供了一個統一的介面來完成標準的目錄操作,如通過對象屬性來查找和定位該對象。由於JNDI是獨立於目錄協議的,應用還可以使用JNDI訪問各種特定的目錄服務,如LDAP、NDS和DNS等。
· JTA
JTA(Java Transaction API)提供了J2EE中處理事務的標准介面,它支持事務的開始、回滾和提交。同時在一般的J2EE平台上,總提供一個JTS(Java Transaction Service)作為標準的事務處理服務,開發人員可以使用JTA來使用JTS。
· JCA
JCA(J2EE Connector Architecture)是J2EE體系架構的一部分,為開發人員提供了一套連接各種企業信息系統(EIS,包括ERP、SCM、CRM等)的體系架構,對於EIS開發商而言,它們只需要開發一套基於JCA的EIS連接適配器,開發人員就能夠在任何的J2EE應用伺服器中連接並使用它。基於JCA的連接適配器的實現,需要涉及J2EE中的事務管理、安全管理及連接管理等服務組件。
· JMX
JMX(Java Management Extensions)的前身是JMAPI。JMX致力於解決分布式系統管理的問題。JMX是一種應用編程介面、可擴展對象和方法的集合體,可以跨越各種異構操作系統平台、系統體系結構和網路傳輸協議,開發無縫集成的面向系統、網路和服務的管理應用。JMX是一個完整的網路管理應用程序開發環境,它同時提供了廠商需要收集的完整的特性清單、可生成資源清單表格、圖形化的用戶介面;訪問SNMP的網路API;主機間遠程過程調用;資料庫訪問方法等。
· JAAS
JAAS(Java Authentication and Authorization Service)實現了一個Java版本的標准Pluggable Authentication Mole(PAM)的框架。JAAS可用來進行用戶身份的鑒定,從而能夠可靠並安全地確定誰在執行Java代碼。同時JAAS還能通過對用戶進行授權,實現基於用戶的訪問控制。
· JACC
JACC(Java Authorization Service Provider Contract for Containers)在J2EE應用伺服器和特定的授權認證伺服器之間定義了一個連接的協約,以便將各種授權認證伺服器插入到J2EE產品中去。
· JAX-RPC
通過使用JAX-RPC(Java API for XML-based RPC),已有的Java類或Java應用都能夠被重新包裝,並以Web Services的形式發布。JAX-RPC提供了將RPC參數(in/out)編碼和解碼的API,使開發人員可以方便地使用SOAP消息來完成RPC調用。同樣,對於那些使用EJB(Enterprise JavaBeans)的商業應用而言,同樣可以使用JAX-RPC來包裝成Web服務,而這個Web Servoce的WSDL界面是與原先的EJB的方法是對應一致的。JAX-RPC為用戶包裝了Web服務的部署和實現,對Web服務的開發人員而言,SOAP/WSDL變得透明,這有利於加速Web服務的開發周期。
· JAXR
JAXR(Java API for XML Registries)提供了與多種類型注冊服務進行交互的API。JAXR運行客戶端訪問與JAXR規范相兼容的Web Servcices,這里的Web Services即為注冊服務。一般來說,注冊服務總是以Web Services的形式運行的。JAXR支持三種注冊服務類型:JAXR Pluggable Provider、Registry-specific JAXR Provider、JAXR Bridge Provider(支持UDDI Registry和ebXML Registry/Repository等)。
· SAAJ
SAAJ(SOAP with Attachemnts API for Java)是JAX-RPC的一個增強,為進行低層次的SOAP消息操縱提供了支持。
下面我們通過假設一個企業應用的J2EE實現,來了解各種組件和服務的應用。假設應用對象是計算機產品的生產商/零售商的銷售系統,這個銷售系統能夠通過自己的網站發布產品信息,同時也能將產品目錄傳送給計算機產品交易市場。銷售系統能夠在線接受訂單(來自自己的Web網站或者來自計算機產品交易市場),並隨後轉入內部企業管理系統進行相關的後續處理。
參見圖3,這個企業應用可以這種方式架構。該企業應用的核心是產品目錄管理和產品定購管理這兩個業務邏輯,使用EJB加以實現,並部署在EJB容器中。由於產品目錄和定購信息都需要持久化,因此使用JDBC連接資料庫,並使用JTA來完成資料庫存取事務。
然後使用JSP/Servlet來實現應用的Web表現:在線產品目錄瀏覽和在線定購。為了將產品目錄發送給特定的交易市場,使用JMS實現非同步的基於消息的產品目錄傳輸。為了使得更多的其它外部交易市場能夠集成產品目錄和定購業務,需要使用Web Services技術包裝商業邏輯的實現。由於產品定購管理需要由公司內部雇員進行處理,因此需要集成公司內部的用戶系統和訪問控制服務以方便雇員的使用,使用JACC集成內部的訪問控制服務,使用JNDI集成內部的用戶目錄,並使用JAAS進行訪問控制。由於產品訂購事務會觸發後續的企業ERP系統的相關操作(包括倉儲、財務、生產等),需要使用JCA連接企業ERP。
最後為了將這個應用納入到企業整體的系統管理體系中去,使用Application Client架構了一個管理客戶端(與其它企業應用管理應用部署在一台機器上),並通過JMX管理這個企業應用。
Ⅱ j2ee具體包括哪些東西
一、准備篇
1 什麼是J2EE?它和普通的Java有什麼不同?
答:J2EE全稱為Java2 Platform, Enterprise Edition。
「J2EE平台本質上是一個分布式的伺服器應用程序設計環境——一個Java環境,它提供了:
·宿主應用的一個運行基礎框架環境。
·一套用來創建應用的Java擴展API。」(引自《J2EE伺服器端高級編程》)
2 J2EE好學嗎?
答:J2EE是很多技術的集合體,並且還在成長中。
你會遇到很多專有名詞:比如(X)HTML,Servlet/JSP,JDBC,JMS,JNDI,EJB,XML,Web Service……。
尤其是XML和Web Service正在快速成長。幸運的是,你不需要等到學會所有技術後再開始編程。
大體上J2EE可以分成3個主要應用:Servlet/JSP,EJB,XML/Web Service 和一些支撐技術例如JDBC和JNDI。
你可以一個一個的學。
3 J2EE有什麼用?
答:用來建設大型的分布式企業級應用程序。或者用更時髦的名詞說就是「電子商務」應用程序。
這些企業可能大到擁有中心資料庫伺服器,Web伺服器集群和遍布全國的辦公終端,也可能小到只不過想做一個網站。
4 學J2EE有前途嗎?
答:在這一市場目前只有一種技術可以和J2EE競爭,那就是Microsoft的.NET。
相對來說.NET要「新」一些而J2EE要「老」一些。
但是.NET只能用於Windows平台(Microsoft聲稱要開發C#在Linux上的虛擬機但是尚未兌現該諾言),
考慮到Linux的發展勢頭,你可以相信.NET不會一統天下。
5 據說J2EE的性能不如.NET好,是真的嗎?
答:在Sun公司提供的樣常式序Pet Store上,Microsoft聲稱不如相同的.NET程序好。
而Sun公司反駁說這一程序不能真正體現J2EE的性能,並且指責Microsoft在資料庫上做了優化。
作者沒有學習過.NET因而不能妄下斷言。
無論如何,大型分布式程序中的性能瓶頸通常首先來自於錯誤的設計。
6 聽你說了這么多,我想學著玩玩。
答:除非你想靠它當飯吃或者作為技術儲備,否則請不要浪費你的時間。
Flash要好玩得多。計算機游戲就更加好玩了。
7 學習J2EE該怎麼開始?
答:首先,下載一個J2EE伺服器。其次,去java.sun.com下載J2EE的API。第三,找一本好的參考書。最後,找一個順手的IDE。
J2EE伺服器。你可以用Sun的J2EE SDK(免費),或者Weblogic(性能最好,但是太大,而且作者不推薦盜版行為),或者JBoss(免費,就是文檔太少),或者JRun(開發版免費,作者用這個)。參考書作者感覺Wrox的《J2EE伺服器端高級編程》不錯,但是太老(作者手頭的是2001年中文版)。你還需要去下載一些最新的技術資料(當然肯定是英文的)。
IDE如果你的機器配置夠好(內存至少512M以上,256M或以下請勿考慮),可以用IBM的WSAD,不然就繼續用Eclipse或者其他。
你也可以經常去水木清華的Java版逛逛,但是在發貼前先看看精華區里有沒有你要的答案。
8 我下了一個J2EE伺服器但是不會配置。
答:請認真閱讀隨機指導文檔,不同的伺服器的配置都不一樣,作者愛莫能助。
9 我發現你沒有提到Tomcat。
答:Tomcat只是一個Web伺服器,更准確地說主要只是一個Web Container。
如果你想要學習EJB的話,Tomcat無法滿足你的需要。
二、 Servlet/JSP篇
10 什麼是Servlet?
答:一個Servlet是一個Java類。它處理Http(s)請求並作出響應,包括返回一個HTML頁面或轉交給其他URL處理。
Servlet必須運行在一個Web Container例如Tomcat中。
Servlet必須是javax.servlet.http.Http Servlet的子類,
你可以繼承doGet()或者doPost()方法,兩者分別對應於Http(s)中的Get請求和Post請求。
11 我怎麼獲得Http請求里的參數?
答:HttpRequest的getParameter()方法。例如:String paramValue = request.getParameter("paramName");
12 我怎麼返回結果?
答:你可以利用相關API打開一個輸出流,並向流中直接寫入一個HTML頁面。
但是作者完全不贊成這樣做。一方面這樣做會很羅嗦。
另一方面從Model-View-Controller模式(在《J2EE核心模式》中被歸為Front Controller模式)的觀點來看,
你應當提供一些HTML或者JSP作為視圖(view),而Servlet則根據請求參數決定轉到哪一個視圖。
你可以利用response.sendRedirect(...)方法或request.getDispatcher(...).forward()方法來實現。
13 sendRedirect()和forward()有什麼不同?
答:sendRedirect()是向瀏覽器發送一個redirect通知,瀏覽器重定向到新的URL。
而forward是在伺服器端直接轉到新的URL,對於瀏覽器是透明的。
前者瀏覽器的地址欄顯示的是新的URL,後者瀏覽器的地址欄顯示的是Servlet的URL。
因而當目標URL會自動刷新時,兩者會造成一些差別。
14 我寫了一個Servlet程序,怎麼運行它?
答:開發J2EE程序有一個部署(deploy)的概念,實際上是開發——部署——運行的三部曲。
大多數伺服器支持Hot deploy。你只需要在相應的Application目錄(具體路徑依賴於伺服器)下面
建立一個符合WAR或EAR格式(參見16,17)的目錄,啟動伺服器,就可以通過瀏覽器訪問了。
特別的,你的Servlet的class文件應當放在/WEB-INF/classes目錄中。
注意J2EE SDK不支持Hot deploy,你需要通過它的deploy tool來部署。
Tomcat只支持WAR格式。
15 EAR和WAR有什麼不同?
答:EAR是一個完整的J2EE應用程序,包括Web部分和EJB部分。
WAR只是其中的Web部分。
16 EAR格式是怎樣的?
答:一個EAR可以包含任意多個WAR或EJB JAR,並且包含一個META-INF的目錄。
在/META-INF中包含了一個application.xml,其中描述了這個EAR包含哪些模塊,以及安全性配置。
細節請看參考書。
17 WAR格式是怎樣的?
答:一個WAR包含一個WEB-INF的目錄,這個目錄下包含classes目錄,lib目錄和web.xml。
/WEB-INF/classes存放按package組織的class文件,/WEB-INF/lib目錄存放jar文件,
web.xml描述了很多東西,請讀參考書。
18 我的普通HTML文件應當放在哪裡?
答:放在除了/WEB-INF以外的其他地方。
19 我訪問不到servlet,甚至連HTML文件都訪問不到!
答:第一你沒啟動伺服器。第二你敲錯了埠。第三你沒有正確配置context-path。
第四你的伺服器不支持auto reload或者你關閉了這一選項,你得重啟伺服器。
第五確認你沒有把HTML放在/WEB-INF目錄下,那是訪問不到的。
20 我能訪問HTML但是訪問不到servlet。
答:請檢查你的web.xml文件。確保你正確定義了<servlet>和<servlet-mapping>元素。
前者標識了一個servlet,後者將一個相對於context-path的URL映射到一個servlet。
在Tomcat中你可以通過/context-path/servlet/package/servletname的形式訪問servlet,
但是這只是Tomcat的便捷訪問方式,並不是正式規范。
細節請看參考書。
21 什麼是JSP?它和Servlet有什麼區別?
答:你可以將JSP當做一個可擴充的HTML來對待。
雖然在本質上JSP文件會被伺服器自動翻譯為相應的Servlet來執行。
可以說Servlet是面向Java程序員而JSP是面向HTML程序員的,除此之外兩者功能完全等價。
Ⅲ j2ee包含哪些內容
SSH:
Struts(表示層)+Spring(業務層)+Hibernate(持久層)
Struts:
Struts是一個表示層框架,主要作用是界面展示,接收請求,分發請求。
在MVC框架中,Struts屬於VC層次,負責界面表現,負責MVC關系的分發。(View:沿用JSP,HTTP,Form,Tag,Resourse ;Controller:ActionServlet,struts-config.xml,Action)
Hibernate:
Hibernate是一個持久層框架,它只負責與關系資料庫的操作。
Spring:
Spring是一個業務層框架,是一個整合的框架,能夠很好地黏合表示層與持久層。
我們知道,傳統的Java Web應用程序是採用JSP+Servlet+Javabean來實現的,這種模式實現了最基本的MVC分層,使的程序結構分為幾層,有負責前台展示的 JSP、負責流程邏輯控制的Servlet以及負責數據封裝的Javabean。但是這種結構仍然存在問題:如JSP頁面中需要使用符號嵌入很多的 Java代碼,造成頁面結構混亂,Servlet和Javabean負責了大量的跳轉和運算工作,耦合緊密,程序復用度低等等。
Struts
為了解決這些問題,出現了Struts框架,它是一個完美的MVC實現,它有一個中央控制類(一個 Servlet),針對不同的業務,我們需要一個Action類負責頁面跳轉和後台邏輯運算,一個或幾個JSP頁面負責數據的輸入和輸出顯示,還有一個 Form類負責傳遞Action和JSP中間的數據。JSP中可以使用Struts框架提供的一組標簽,就像使用HTML標簽一樣簡單,但是可以完成非常復雜的邏輯。從此JSP頁面中不需要出現一行包圍的Java代碼了。 可是所有的運算邏輯都放在Struts的Action里將使得 Action類復用度低和邏輯混亂,所以通常人們會把整個Web應用程序分為三層,Struts負責顯示層,它調用業務層完成運算邏輯,業務層再調用持久層完成資料庫的讀寫。 使用JDBC連接來讀寫資料庫,我們最常見的就是打開資料庫連接、使用復雜的SQL語句進行讀寫、關閉連接,獲得的數據又需要轉換或封裝後往外傳,這是一個非常煩瑣的過程。
Hibernate
這時出現了 Hibernate框架,它需要你創建一系列的持久化類,每個類的屬性都可以簡單的看做和一張資料庫表的屬性一一對應,當然也可以實現關系資料庫的各種表件關聯的對應。當我們需要相關操作是,不用再關注資料庫表。我們不用再去一行行的查詢資料庫,只需要持久化類就可以完成增刪改查的功能。使我們的軟體開發真正面向對象,而不是面向混亂的代碼。我的感受是,使用Hibernate比JDBC方式減少了80%的編程量。 現在我們有三個層了,可是每層之間的調用是怎樣的呢?比如顯示層的Struts需要調用一個業務類,就需要new一個業務類出來,然後使用;業務層需要調用持久層的類,也需要new一個持久層類出來用。通過這種new的方式互相調用就是軟體開發中最糟糕設計的體現。簡單的說,就是調用者依賴被調用者,它們之間形成了強耦合,如果我想在其他地方復用某個類,則這個類依賴的其他類也需要包含。程序就變得很混亂,每個類互相依賴互相調用,復用度極低。如果一個類做了修改,則依賴它的很多類都會受到牽連。 為此,出現Spring框架。
Spring Spring的作用就是完全解耦類之間的依賴關系,一個類如果要依賴什麼,那就是一個介面。至於如何實現這個介面,這都不重要了。只要拿到一個實現了這個介面的類,就可以輕松的通過xml配置文件把實現類注射到調用介面的那個類里。所有類之間的這種依賴關系就完全通過配置文件的方式替代了。所以 Spring框架最核心的就是所謂的依賴注射和控制反轉。 現在的結構是,Struts負責顯示層,Hibernate負責持久層,Spring負責中間的業務層,這個結構是目前國內最流行的Java Web應用程序架構了。另外,由於Spring使用的依賴注射以及AOP(面向方面編程),所以它的這種內部模式非常優秀,以至於Spring自己也實現了一個使用依賴注射的MVC框架,叫做Spring MVC,同時為了很好的處理事物,Spring集成了Hibernate,使事物管理從Hibernate的持久層提升到了業務層,使用更加方便和強大。 Struts框架是2000年就開始起步了,到目前已經發展了5年,技術相當成熟,目前全球Java開發中Struts框架是顯示層技術中當之無愧的王者。它擁有大量的用戶群和很好的開發團隊。這也是國內大部分Java軟體公司對新進員工的基本要求。 其他 Java這個名詞似乎註定和開源緊密聯系在一起了,在Java界,每天都有大量的開源技術出現,由於是開放源代碼的,技術中存在的問題和不足很快就會被人發現,開源軟體提供者會很快的修正或擴展這些技術,因此版本更新很快,幾個星期或者幾天就有一個新版本出來。 當我們在技術線路中選擇了Java,也就選擇了你必須持續學習,經常關注最新的技術,了解它們,看是否適合你的需要,然後學習使用它們。
希望我的回答能夠幫到您!~~~
Ⅳ J2EE的開發技術有哪些
主要有JSP/JavaBean/Servlet 這三種技術結合起來使用的模式叫MVC模式
當然還有j2ee的深層技術 框架:
Struts/Spring/Hibernate
Ⅳ j2ee的核心技術
為了聯系實際,GOULD基於WEBLOGIC應用伺服器(來自BEASYSTEMS公司的一種廣為應用的產品)環境來介紹J2EE的這些技術。JAVA最初是在瀏覽器和客戶端機器中閃亮登場的。當時,很多人質疑它是否適合做伺服器端的開發。隨著對JAVA2平台企業版(J2EE)第三方支持的增多,JAVA被廣泛接納為開發企業級伺服器端解決方案的首選平台之一。
J2EE平台由一整套服務(SERVICES)、應用程序介面(APIS)和協議構成,它對開發基於WEB的多層應用提供了功能支持。在本文中我將解釋支撐J2EE的13種核心技術:JDBC,JNDI,EJBS,RMI,JSP,JAVA SERVLETS,XML,JMS,JAVA IDL,JTS,JTA,JAVA MAIL 和 JAF,同時還將描述在何時、何處需要使用這些技術。當然,我還要介紹這些不同的技術之間是如何交互的。此外,為了讓您更好地感受J2EE的真實應用,我將在WEBLOGIC應用伺服器(來自BEA SYSTEMS公司的一種廣為應用的產品)環境下來介紹這些技術。不論對於WEBLOGIC應用伺服器和J2EE的新手,還是那些想了解J2EE能帶來什麼好處的項目管理者和系統分析員,相信本文一定很有參考價值。
宏觀印象: 分布式結構和J2EE
過去,二層化應用--通常被稱為CLIENT/SERVER應用--是大家談論的最多的。在很多情況下,伺服器提供的唯一服務就是資料庫服務。在這種解決方案中,客戶端程序負責數據訪問、實現業務邏輯、用合適的樣式顯示結果、彈出預設的用戶界面、接受用戶輸入等。CLIENT/SERVER結構通常在第一次部署的時候比較容易,但難於升級或改進,而且經常基於某種專有的協議(通常是某種資料庫協議)。它使得重用業務邏輯和界面邏輯非常困難。更重要的是,在WEB時代,二層化應用通常不能體現出很好的伸縮性,因而很難適應INTERNET的要求。
SUN設計J2EE的部分起因就是想解決二層化結構的缺陷。於是J2EE定義了一套標准來簡化N層企業級應用的開發。它定義了一套標准化的組件,並為這些組件提供了完整的服務。J2EE還自動為應用程序處理了很多實現細節,如安全、多線程等。用J2EE開發N層應用包括將二層化結構中的不同層面切分成許多層。一個N層化應用A能夠為以下的每種服務提供一個分開的層:顯示:在一個典型的WEB應用中,客戶端機器上運行的瀏覽器負責實現用戶界面。
動態生成顯示: 盡管瀏覽器可以完成某些動態內容顯示,但為了兼容不同的瀏覽器,這些動態生成工作應該放在WEB伺服器端進行,使用JSP、SERVLETS,或者XML(標准通用標記語言下的一個子集可擴展標記語言)和XSL(可擴展樣式表語言)。
業務邏輯:業務邏輯適合用SESSION EJB(後面將介紹)來實現。
數據訪問:數據訪問適合用ENTITY EJB(後面將介紹)和JDBC來實現 。
後台系統集成: 後台系統的集成可能需要用到許多不同的技術,至於何種最佳需要根據後台系統的特徵而定。
您可能開始詫異:為什麼有這么多的層?事實上,多層方式可以使企業級應用具有很強的伸縮性,它允許每層專注於特定的角色。例如,讓WEB伺服器負責提供頁面,應用伺服器處理應用邏輯,而資料庫伺服器提供資料庫服務。
由於J2EE建立在JAVA2平台標准版(J2SE)的基礎上,所以具備了J2SE的所有優點和功能。包括「編寫一次,到處可用」的可移植性、通過JDBC訪問資料庫、同原有企業資源進行交互的CORBA技術以及一個經過驗證的安全模型。在這些基礎上,J2EE又增加了對EJB(企業級JAVA組件)、JAVA SERVLETS、JAVA伺服器頁面(JSPS)和XML(標准通用標記語言的子集)技術的支持。
分布式結構與WEBLOGIC應用伺服器
J2EE提供了一個框架--一套標准API--用於開發分布式結構的應用,這個框架的實際實現留給了第三方廠商。部分廠商只是專注於整個J2EE架構中的的特定組件,例如APACHE的TOMCAT提供了對JSP和SERVLETS的支持,BEA系統公司則通過其WEBLOGIC應用伺服器產品為整個 J2EE規范提供了一個較為完整的實現。
WEBLOGIC伺服器已使建立和部署伸縮性較好的分布式應用的過程大為簡化。WEBLOGIC和J2EE代理處理了大量常規的編程任務,包括提供事務服務、安全領域、可靠的消息、名字和目錄服務、資料庫訪問和連接池、線程池、負載平衡和容錯處理等。通過以一種標准、易用的方式提供這些公共服務,像WEBLOGIC伺服器這樣的產品造就了具有更好伸縮性和可維護性的應用系統,使其為大量的用戶提供了增長的可用性。
J2EE技術在接下來的部分里,我們將描述構成J2EE的各種技術,並且了解WEBLOGIC伺服器是如何在一個分布式應用中對它們進行支持的。最常用的J2EE技術應該是JDBC、JNDI、EJB、JSP和SERVLETS,對這些我們將作更仔細的考察。
JAVA DATABASE CONNECTIVITY (JDBC)
JDBC API以一種統一的方式來對各種各樣的資料庫進行存取。和ODBC一樣,JDBC為開發人員隱藏了不同資料庫的不同特性。另外,由於JDBC建立在JAVA的基礎上,因此還提供了資料庫存取的平台獨立性。
JDBC定義了4種不同的驅動程序,現分述如下:
類型 1: JDBC-ODBCBRIDGE
在JDBC出現的初期,JDBC-ODBC橋顯然是非常有實用意義的,通過JDBC-ODBC橋,開發人員可以使用JDBC來存取ODBC數據源。不足的是,他需要在客戶端安裝ODBC驅動程序,換句話說,必須安裝MICROSOFT WINDOWS的某個版本。使用這一類型你需要犧牲JDBC的平台獨立性。另外,ODBC驅動程序還需要具有客戶端的控制許可權。
類型 2: JDBC-NATIVE DRIVER BRIDGE
JDBC本地驅動程序橋提供了一種JDBC介面,它建立在本地資料庫驅動程序的頂層,而不需要使用ODBC。JDBC驅動程序將對資料庫的API從標準的JDBC調用轉換為本地調用。使用此類型需要犧牲JDBC的平台獨立性,還要求在客戶端安裝一些本地代碼。
類型 3: JDBC-NETWORK BRIDGE
JDBC網路橋驅動程序不再需要客戶端資料庫驅動程序。它使用網路上的中間伺服器來存取資料庫。這種應用使得以下技術的實現有了可能,這些技術包括負載 均衡、連接緩沖池和數據緩存等。由於第3種類型往往只需要相對更少的下載時間,具有平台獨立性,而且不需要在客戶端安裝並取得控制權,所以很適合於 INTERNET上的應用。
類型 4: PURE JAVA DRIVER
第4種類型通過使用一個純JAVA資料庫驅動程序來執行資料庫的直接訪問。此類型實際上在客戶端實現了2層結構。要在N-層結構中應用,一個更好的做法是編寫一個EJB,讓它包含存取代碼並提供一個對客戶端具有資料庫獨立性的服務。
WEBLOGIC伺服器為一些通常的資料庫提供了JDBC驅動程序,包括ORACLE,SYBASE,MICROSOFT SQLSERVER以及INFORMIX。它也帶有一種JDBC驅動程序用於CLOUDSCAPE,這是一種純JAVA的DBMS,WEBLOGIC伺服器中帶有該資料庫的評估版本。
以下讓我們看一個實例。
JDBC實例在這個例子中我們假定你已經在CLOUDSCAPE中建立了一個PHONEBOOK資料庫,並且包含一個表,名為CONTACT_TABLE ,它帶有2個欄位:NAME 和 PHONE。開始的時候先裝載CLOUDSCAPE JDBC DRIVER,並請求DRIVER MANAGER得到一個對PHONEBOOK CLOUDSCAPE資料庫的連接。通過這一連接,我們可以構造一個STATEMENT 對象並用它來執行一個簡單的SQL查詢。最後,用循環來遍歷結果集的所有數據,並用標准輸出將NAME和PHONE欄位的內容進行輸出。 importjava.sql.*;publicclassjdbcexample{publicstaticvoidmain(stringargs[]){try{class.forname("com.cloudscape.core.jdbcdriver");connectionconn=drivermanager.getconnection("jdbc:cloudscape:phonebook");statementstmt=conn.createstatement();stringsql="selectname,phonefromcontact_tableorderbyname";resultsetresultset=stmt.executequery(sql);stringname;stringphone;while(resultset.next()){name=resultset.getstring(1).trim();phone=resultset.getstring(2).trim();system.out.println(name+","+phone);}}catch(exceptione){//handleexceptionheree.printstacktrace();}}}OK。接著我們來看一看JDBC是如何在企業應用中的進行使用。JDBC在企業級應用中的應用以上實例其實是很基本的,可能有些微不足道。它假定了一個2層結構。在一個多層的企業級應用中,更大的可能是在客戶端和一個EJB進行通信,該EJB將建立資料庫連接。為了實現和改進可伸縮性和系統性能,WEBLOGIC伺服器提供了對連接緩沖池CONNECTION POOL的支持。CONNECTION POOL減少了建立和釋放資料庫連接的消耗。在系統啟動以後即可建立這樣的緩沖池,此後如故再有對資料庫的請求,WEBLOGIC伺服器可以很簡單地從緩 沖池中取出數據。數據緩沖池可以在WEBLOGIC伺服器的WEBLOGIC.PROPERTIES 文件中進行定義。(可參考 WEBLOGIC.PROPERTIES 文件中的例子,WEBLOGIC伺服器的文檔中還有更詳細的參考信息)在企業級應用的另一 個常見的資料庫特性是事務處理。事務是一組申明STATEMENT,它們必須做為同一個STATEMENT來處理以保證數據完整性。預設情況下JDBC使 用 AUTO-COMMIT 事務模式。這可以通過使用CONNECTION類的 SETAUTOCOMMIT() 方法來實現。
現在我們已經對JDBC有了一些認識,下面該轉向JNDI了。
JAVA NAMING AND DIRECTORY INTERFACE (JNDI)
JNDI API被用於執行名字和目錄服務。它提供了一致的模型來存取和操作企業級的資源如DNS和LDAP,本地文件系統,後者在應用伺服器中的對象。
在JNDI中,在目錄結構中的每一個結點稱為CONTEXT。每一個JNDI名字都是相對於CONTEXT的。這里沒有絕對名字的概念存在。對一個應用來說,它可以通過使用 INITIALCONTEXT 類來得到其第一個CONTEXT:
CONTEXT CTX = NEW INITIALCONTEXT();
應用可以通過這個初始化的CONTEXT經有這個目錄樹來定位它所需要的資源或對象。例如,假設你在WEBLOGIC伺服器中展開了一個EJB並將 HOME介面綁定到名字 MYAPP.MYEJB ,那麼該EJB的某個客戶在取得一個初始化
CONTEXT以後,可以通過以下語句定位HOME介面:
MYEJBHOME HOME = CTX.LOOKUP( "MYAPP.MYEJB" );
在這個例子中,一旦你有了對被請求對象的參考,EJB的HOME介面就可以在它上面調用方法。我們將在下面的"ENTERPRISE JAVA BEANS"章節中做更多的介紹。
以上關於JNDI的討論只是冰山之一角而已。如果要更進一步地在CONTEXT中查找對象,JNDI也提供了一些方法來進行以下操作:
將一個對象插入或綁定到CONTEXT。這在你展開一個EJB的時候是很有效的。
從CONTEXT中移去對象。
列出CONTEXT中的所有對象。
創建或刪除子一級的CONTEXT。
接下來,我們要開始關注EJB了。
ENTERPRISE JAVA BEANS (EJB)
J2EE技術之所以贏得某體廣泛重視的原因之一就是EJB。它們提供了一個框架來開發和實施分布式商務邏輯,由此很顯著地簡化了具有可伸縮性和高度復雜的企業級應用的開發。EJB規范定義了EJB組件在何時以及如何與它們的容器進行交互作用。容器負責提供公用的服務,例如目錄服務、事務管理、安全性、資源緩沖池以及容錯性。
EJB規范定義了3中基本的BEAN類型:
STATELESS SESSION BEANS: 提供某種單一的服務,不維持任何狀態,在伺服器故障發生時無法繼續存在,生命期相對較短。例如,一個STATELESS SESSION BEAN可能被用於執行溫度轉換計算。
STATEFUL SESSION BEAN: 提供了與客戶端的會話交互,可以存儲狀態從而代表一個客戶。典型例子是購物車。STATEFUL SESSION BEAN在伺服器故障時無法繼續生存,生命期相對較短。每一個實例只用於一個單個的線程
ENTITY BEANS: 提供了一致性數據的表示-- 通常存放在資料庫中 -- 在伺服器故障發生後能繼續存在。多用戶情況下可以使用EJB來表示相同的數據。ENTITY EJB的一個典型例子是客戶的帳號信息。
盡管有以上的區別,所有的EJB還是有許多的共同之處:
它們都處理HOME INTERFACE。它定義了一個客戶端是如何創建與消亡EJB的。
可以在BEAN中對定義了客戶端方法的遠程介面進行調用;
BEAN類則執行了主要的商務邏輯描述
EJB的開發已經超出了本文的范圍。但是,如果一個EJB已經被開發了或者從第三方進行了購買,它就必須在應用伺服器中進行發布。WEBLOGIC SERVER 5.1帶有一個EJB DEPLOYER TOOL來協助處理EJB的發布。當你使用EJB DEPLOYER TOOL的時候,你要定義客戶端所用的JNDI名字來定位EJB。DEPLOYER TOOL將生成WRAPPER類來處理和容器的通信以及在一個JAR文件中把被請求的JAVA類綁定在一起。一旦EJB被發布,客戶端就可以使用它的JNDI名字來定位EJB。
首先,它必須得到一個到HOME介面的REFERENCE。
然後,客戶端可以使用該介面,調用一個 CREATE() 方法來得到伺服器上運行的某個BEAN實例的句柄;
最後,客戶端可以使用該句柄在BEAN中調用方法。
了解 EJB後,讓我們再來看JSP。
JAVA SERVER PAGES (JSPS)
我們中間可能已經有許多人已經熟悉MICROSOFT的ACTIVE SERVER PAGES (ASP)技術了。JSP和ASP相對應的,但更具有平台對立性。他們被設計用以幫助WEB內容開發人員創建動態網頁,並且只需要相對較少的代碼。即使WEB設計師不懂得如何編程也可以使用JSP,因為JSP應用是很方便的。JSP頁面由HTML(標准通用標記語言下的一個應用)代碼和嵌入其中的JAVA代碼所組成。伺服器在頁面被客戶端所請求以後對這些JAVA代碼進行處理,然後將生成的HTML頁面返回給客戶端的瀏覽器。
下面我們來看一個JSP的簡單實例。它只顯示了伺服器的當前日期和時間。雖然,對語法的具體解釋已經超出了本文的范圍,但我們還是可以很直觀地看到,JAVA代碼被放在<%和%>;的中間,而JAVA的表達式則放在<%=和%>;之間。 <html><head><title>SampleJSPPage</title></head><body><h1>DateJSPsample</h1><%response.setHeader("Refresh",5);%>Thecurrentdateis<%=newDate()%>.</body></html>您可能有時候聽說過JHTML。這是JSP以前的一種較老的標准。WEBLOGIC伺服器既可支持JSP,又可支持JHTML。
請注意,在預設狀況下,JSP在WEBLOGIC伺服器中並沒有處於有效狀態。要使之有效,你可以編輯WEBLOGIC.PROPERTIES文件。如果WEB伺服器還沒有處於有效狀態,則要先使之有效。SERVLET的情況和JSP是一樣的。
下面是:JAVA SERVLETS
JAVA SERVLETS
SERVLET提供的功能大多與JSP類似,不過實現的方式不同。JSP通常是大多數HTML代碼中嵌入少量的JAVA代碼,而SERVLETS全部由JAVA寫成並且生成HTML。
SERVLET是一種小型的JAVA程序,它擴展了WEB伺服器的功能。作為一種伺服器端的應用,當被請求時開始執行,這和CGI PERL腳本很相似。SERVLETS和CGI腳本的一個很大的區別是:每一個CGI在開始的時候都要求開始一個新的進程 -- 而SERVLETS是在SERVLET引擎中以分離的線程來運行的。因此SERVLETS在可伸縮性上提供了很好的改進。在開發SERVLETS的時候,您常常需要擴展JAVA X.SERVLET.HTTP.HTTPSERVLET 類,並且OVERRIDE一些它的方法,其中包括:
SERVICE(): 作為DISPATCHER來實現命令-定義方法
DOGET(): 處理客戶端的HTTP GET請求。
DOPOST(): 進行HTTP POST操作
其它的方法還包括處理不同類型的HTTP請求-- 可以參考HTTPSERVLET API文檔。
以上描述的是標准J2EE SERVLET API的各種方法。WEBLOGIC伺服器提供了一個該API完整的實現途徑。一旦你開發了一個SERVLET,你就可以在 WEBLOGIC.PROPERTIES 中加以注冊並由此可以在WEBLOGIC伺服器中對它進行配置。通過JAVA SERVLETS,我們已經到達了J2EE主要技術的末尾了。但J2EE所提供的並不止於這些。
下面的段落中我們將簡要地看一下現存的一些技術,包括RMI,JAVA IDL和CORBA,JTA,以及XML(標准通用標記語言的子集),等等。
REMOTE METHOD INVOCATION (RMI)
正如其名字所表示的那樣,RMI協議是在遠程對象上調用一些方法。它使用了連續序列方式在客戶端和伺服器端傳遞數據。RMI是一種被EJB使用的更下層的協議。
JAVA IDL/CORBA
在JAVA IDL的支持下,開發人員可以將JAVA和CORBA集成在一起。他們可以創建JAVA對象並使之可在CORBA ORB中展開,或者他們還可以創建JAVA類並作為和其它ORB一起展開的CORBA對象的客戶。後一種方法提供了另外一種途徑,通過它JAVA可以被用於將你的新的應 用和LEGACY系統相集成。
JAVA TRANSACTION ARCHITECTURE (JTA)/JAVA TRANSACTION SERVICE (JTS)
JTA定義了一種標準的API,應用系統由此可以存取各種事務監控。
JTS是CORBA OTS事務監控的基本實現。JTS規定了事務管理器的實現方式。該事務管理器是在高層支持JAVA TRANSACTION API (JTA)規范,並且在較底層實現OMG OTS SPECIFICATION的JAVA映像。JTS事務管理器為應用伺服器、資源管理器、獨立的應用以及通信資源管理器提供了事務服務。
JAVA MAIL AND JAVA BEANS ACTIVATION FRAMEWORK
JAVA MAIL是用於存取郵件伺服器的API,它提供了一套郵件伺服器的抽象類。不僅支持SMTP伺服器,也支持IMAP伺服器JAVA MAIL利用JAVA BEANS ACTIVATION FRAMEWORK (JAF)來處理MIME-編碼的郵件附件。MIME的位元組流可以被轉換成JAVA對象,或者轉換自JAVA對象。由此大多數應用都可以不需要直接使用JAF。
JAVA MESSAGING SERVICE (JMS)
JMS是用於和面向消息的中間件相互通信的應用程序介面(API)。它既支持點對點的域,又支持發布/訂閱(PUBLISH/SUBSCRIBE)類型的域,並且提供對下列類型的支持:經認可的消息傳遞、事務型消息的傳遞、一致性消息和具有持久性的訂閱者支持。JMS還提供了另一種方式來對您的應用與LEGACY BACKEND系統相集成。
XML(標准通用標記語言的子集)
XML是一種可以用來定義其它標記語言的語言。它被用來在不同的商務過程中共享數據。XML的發展和JAVA是相互獨立的,但是,它和JAVA具有的相同目標正是平台獨立性。通過將JAVA和XML的組合,您可以得到一個完美的具有平台獨立性的解決方案。目前正有許多不同的公司在為JAVA和XML的組合而努力。如果要了解更多的這方面的信息,可以訪問SUN的JAVA-XML頁面,或者IBM DEVELOPERWORKS的XML ZONE。
總結
在本文中,我們介紹了建立在J2EE上的分布式應用結構,並且描述了WEBLOGIC伺服器對J2EE的各種支持。然而,我們所揭示的僅僅是冰山之一角而已,要以一篇數千字的文章來展示J2EE潛在的對您的企業級應用的影響可是很不公平的。
我們已經關注了在您開始用J2EE進行工作時最有可能遇到的各類技術:JDBC,JNDI,EJB,JSP和SERVLET。我們也為您提供了一些尚未常見的J2EE技術的背景知識。不管您是一名開發人員,商務應用分析師,或者項目經理,都應該對J2EE和WEBLOGIC伺服器所能提供給我們,給我們的企業以及我們的企業級應用所帶來的意義有一個更好的認識。
J2EE 帶動了Java在企業級的發展,但隨著一些輕量級組件的出現,J2EE的臃腫和開發難度高的缺點越來越引起了許多人的注意,EJB2.0也被許多人稱為累贅。隨著Spring,Hibernate的不斷完善和發展,EJB3.0出現了,成為了未來Java 企業級開發的新的方向。
使用元數據,注釋代替傳統的配置文件成為了新的熱點。JPA更是代替了傳統的CMP作為了更加便捷的持久化的方案。
Ⅵ j2ee的關鍵技術是什麼
J2EE里我在達內學習時,
主要的技術有:
1Corejava就不說了
2Servlet
3JSP
4JDBC
5框架類
SSH——SpringStruts2(WebWork內核)Hibernate
EJB
6OraclePLSQL
7JsXML等....
Ⅶ 什麼是J2EE,包括哪些規范!
JNDI(Java Name and Directory Interface): JNDI API被用於執行名字和目錄服務。它提供了一致的模型來存取和操作企業級的資源如DNS和LDAP,本地文件系統,或應用伺服器中的對象。 EJB(Enterprise JavaBean): J2EE技術之所以贏得某體廣泛重視的原因之一就是EJB。它們提供了一個框架來開發和實施分布式商務邏輯,由此很顯著地簡化了具有可伸縮性和高度復雜的企業級應用的開發。EJB規范定義了EJB組件在何時如何與它們的容器進行交互作用。容器負責提供公用的服務,例如目錄服務、事務管理、安全性、資源緩沖池以及容錯性。但這里值得注意的是,EJB並不是實現J2EE的唯一途徑。正是由於J2EE的開放性,使得有的廠商能夠以一種和EJB平行的方式來達到同樣的目的。 RMI(Remote Method Invoke): 正如其名字所表示的那樣,RMI協議調用遠程對象上方法。它使用了序列化方式在客戶端和伺服器端傳遞數據。RMI是一種被EJB使用的更底層的協議。 Java IDL/CORBA: 在Java IDL的支持下,開發人員可以將Java和CORBA集成在一起。他們可以創建Java對象並使之可在CORBA ORB中展開, 或者他們還可以創建Java類並作為和其它ORB一起展開的CORBA對象的客戶。後一種方法提供了另外一種途徑,通過它Java可以被用於將你的新的應用和舊的系統相集成。 JSP(Java Server Pages): JSP頁面由HTML代碼和嵌入其中的Java代碼所組成。伺服器在頁面被客戶端所請求以後對這些Java代碼進行處理,然後將生成的HTML頁面返回給客戶端的瀏覽器。 Java Servlet: Servlet是一種小型的Java程序,它擴展了Web伺服器的功能。作為一種伺服器端的應用,當被請求時開始執行,這和CGI Perl腳本很相似。Servlet提供的功能大多與JSP類似,不過實現的方式不同。JSP通常是大多數HTML代碼中嵌入少量的Java代碼,而servlets全部由Java寫成並且生成HTML。 XML(Extensible Markup Language): XML是一種可以用來定義其它標記語言的語言。它被用來在不同的商務過程中共享數據。XML的發展和Java是相互獨立的,但是,它和Java具有的相同目標正是平台獨立性。通過將Java和XML的組合,您可以得到一個完美的具有平台獨立性的解決方案。 JMS(Java Message Service): MS是用於和面向消息的中間件相互通信的應用程序介面(API)。它既支持點對點的域,有支持發布/訂閱(publish/subscribe)類型的域,並且提供對下列類型的支持:經認可的消息傳遞,事務型消息的傳遞,一致性消息和具有持久性的訂閱者支持。JMS還提供了另一種方式來對您的應用與舊的後台系統相集成。 JTA(Java Transaction Architecture): JTA定義了一種標準的API,應用系統由此可以訪問各種事務監控。 JTS(Java Transaction Service): JTS是CORBA OTS事務監控的基本的實現。JTS規定了事務管理器的實現方式。該事務管理器是在高層支持Java Transaction API (JTA)規范,並且在較底層實現OMG OTS specification的Java映像。JTS事務管理器為應用伺服器、資源管理器、獨立的應用以及通信資源管理器提供了事務服務。 JavaMail: JavaMail是用於存取郵件伺服器的API,它提供了一套郵件伺服器的抽象類。不僅支持SMTP伺服器,也支持IMAP伺服器。 JTA(JavaBeans Activation Framework): JavaMail利用JAF來處理MIME編碼的郵件附件。MIME的位元組流可以被轉換成Java對象,或者轉換自Java對象。
Ⅷ j2ee是什麼它包括哪些技術
j2EE通俗的理解為開發網站的就是,j2SE就是開發桌面應用程序的。
包含的技術嘛,主要的就是開發網站需要的一些技術啦
比如:servlet,jsp,javaBean 框架:spring hibernate struts ibatis webwork
Ⅸ 什麼是J2EE技術
去網上找找,多的一踏糊塗
J2EE是美國Sun公司剛剛推出的一種全新概念的模型,與傳統的互聯網應用程序模型相比有著不可比擬的優勢。
當今許多企業都需要擴展他們的業務范圍,降低自身經營成本,縮短他們和客戶之間
的響應時間,這就需要存在一種簡捷,快速的服務於企業,合作夥伴和雇員之間。
典型的說,提供這些服務的應用軟體必須同企業信息系統(EIS)相結合,並提供新的能向更為廣闊的用戶提供的服務。這些服務要具備以下的特點:
a. 高可用性:來滿足現在的全球商業環境
b. 安全性:保護用戶的隱私和企業數據的安全
c. 可依賴性和可擴展性:保證商業交易的正確和迅捷
通常這些服務是由分布的應用程序組成的,包括前端數據端和後端數據源以及它們之間的一層或幾層,這些中間層提供了把商業功能和數據與EIS相結合的功能。這些中間層把客戶端從復雜的商業邏輯中分離出來,利用成熟的INTERNET技術使用戶在管理上所花費的時間最小化。
J2EE正式降低了開發這種中間層服務的成本和復雜程度,因而使得服務可以被快
速的展開,並能夠更輕松的面對競爭中的壓力。
J2EE通過定義一種標準的結構來實現它的優勢,如下:
a. J2EE Application Programming Model ----一種用於開發多層次,瘦型客戶用戶程
序的標准設計模型
b. J2EE Platform----一個標準的平台,用來整合J2EE的應用程序,指定一系列的
介面和方法
c. J2EE Compatibility Test Suite----一套兼容測試組件,用來檢測產品是否同J2EE 平台兼容
d. J2EE Reference Implementation----用來示範J2EE的能力
Ⅹ J2EE包含哪些技術
J2EE平台由一整套服務(Services)、應用程序介面(APIs)和協議構成,它對開發基於Web的多層應用提供了功能支持,下面對J2EE中的13種技術規范進行簡單的描述(限於篇幅,這里只能進行簡單的描述):
JDBC(Java Database Connectivity)
JDBC API為訪問不同的資料庫提供了一種統一的途徑,象ODBC一樣,JDBC對開發者屏蔽了一些細節問題,另外,JDBC對資料庫的訪問也具有平台無關性。
JNDI(Java Name and Directory Interface)
JNDI API被用於執行名字和目錄服務。它提供了一致的模型來存取和操作企業級的資源如DNS和LDAP,本地文件系統,或應用伺服器中的對象。
EJB(Enterprise JavaBean)
J2EE技術之所以贏得媒體廣泛重視的原因之一就是EJB。它們提供了一個框架來開發和實施分布式商務邏輯,由此很顯著地簡化了具有可伸縮性和高度復雜的企業級應用的開發。EJB規范定義了EJB組件在何時如何與它們的容器進行交互作用。容器負責提供公用的服務,例如目錄服務、事務管理、安全性、資源緩沖池以及容錯性。但這里值得注意的是,EJB並不是實現J2EE的唯一途徑。正是由於J2EE的開放性,使得有的廠商能夠以一種和EJB平行的方式來達到同樣的目的。
RMI(Remote Method Invoke)
正如其名字所表示的那樣,RMI協議調用遠程對象上方法。它使用了序列化方式在客戶端和伺服器端傳遞數據。RMI是一種被EJB使用的更底層的協議。
Java IDL/CORBA
在Java IDL的支持下,開發人員可以將Java和CORBA集成在一起。他們可以創建Java對象並使之可在CORBA ORB中展開, 或者他們還可以創建Java類並作為和其它ORB一起展開的CORBA對象的客戶。後一種方法提供了另外一種途徑,通過它Java可以被用於將你的新的應用和舊的系統相集成。
JSP(Java Server Pages)
JSP頁面由HTML代碼和嵌入其中的Java代碼所組成。伺服器在頁面被客戶端所請求以後對這些Java代碼進行處理,然後將生成的HTML頁面返回給客戶端的瀏覽器。
Java Servlet
Servlet是一種小型的Java程序,它擴展了Web伺服器的功能。作為一種伺服器端的應用,當被請求時開始執行,這和CGI Perl腳本很相似。Servlet提供的功能大多與JSP類似,不過實現的方式不同。JSP通常是大多數HTML代碼中嵌入少量的Java代碼,而servlets全部由Java寫成並且生成HTML。
XML(Extensible Markup Language)
XML是一種可以用來定義其它標記語言的語言。它被用來在不同的商務過程中共享數據。
XML的發展和Java是相互獨立的,但是,它和Java具有的相同目標正是平台獨立性。通過將Java和XML的組合,您可以得到一個完美的具有平台獨立性的解決方案。
JMS(Java Message Service)
MS是用於和面向消息的中間件相互通信的應用程序介面(API)。它既支持點對點的域,有支持發布/訂閱(publish/subscribe)類型的域,並且提供對下列類型的支持:經認可的消息傳遞,事務型消息的傳遞,一致性消息和具有持久性的訂閱者支持。JMS還提供了另
一種方式來對您的應用與舊的後台系統相集成。
JTA(Java Transaction Architecture)
JTA定義了一種標準的API,應用系統由此可以訪問各種事務監控。
11. JTS(Java Transaction Service):
JTS是CORBA OTS事務監控的基本的實現。JTS規定了事務管理器的實現方式。該事務管理器是在高層支持Java Transaction API (JTA)規范,並且在較底層實現OMG OTS specification的Java映像。JTS事務管理器為應用伺服器、資源管理器、獨立的應用以及通信資源管理器提供了事務服務。
JavaMail
JavaMail是用於存取郵件伺服器的API,它提供了一套郵件伺服器的抽象類。不僅支持SMTP伺服器,也支持IMAP伺服器。
JAF(JavaBeans Activation Framework)
JavaMail利用JAF來處理MIME編碼的郵件附件。MIME的位元組流可以被轉換成Java對象,或者轉換自Java對象。大多數應用都可以不需要直接使用JAF。