亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

J2EE的13種核心技術

2019-11-18 12:27:25
字體:
來源:轉載
供稿:網友

  java最初是在瀏覽器和客戶端機器中粉墨登場的。當時,很多人質疑它是否適合做服務器端的開發?,F在,隨著對Java2平臺企業版(J2EE)第三方支持的增多,Java被廣泛接納為開發企業級服務器端解決方案的首選平臺之一。
  
  J2EE平臺由一整套服務(Services)、應用程序接口(APIs)和協議構成,它對開發基于Web的多層應用提供了功能支持。
  
  在本文中我將解釋支撐J2EE的13種核心技術:JDBC, JNDI, EJBs, RMI, jsp, Java servlets, xml, JMS, Java IDL, JTS, JTA, JavaMail 和 JAF,同時還將描述在何時、何處需要使用這些技術。當然,我還要介紹這些不同的技術之間是如何交互的。
  
  此外,為了讓您更好地感受J2EE的真實應用,我將在WebLogic應用服務器―來自BEA Systems公司的一種廣為應用的產品―環境下來介紹這些技術。不論對于WebLogic應用服務器和J2EE的新手,還是那些想了解J2EE能帶來什么好處的項目治理者和系統分析員,相信本文一定很有參考價值。
  
  宏觀印象: 分布式結構和J2EE
  過去,二層化應用 -- 通常被稱為client/server應用 -- 是大家談論的最多的。圖1刻畫了典型的二層化結構。在很多情況下,服務器提供的唯一服務就是數據庫服務。在這種解決方案中,客戶端程序負責數據訪問、實現業務邏輯、用合適的樣式顯示結果、彈出預設的用戶界面、接受用戶輸入等。client/server結構通常在第一次部署的時候比較輕易,但難于升級或改進,而且經?;谀撤N專有的協議―通常是某種數據庫協議。它使得重用業務邏輯和界面邏輯非常困難。更重要的是,在Web時代,二層化應用通常不能體現出很好的伸縮性,因而很難適應Internet的要求。
  
  Sun設計J2EE的部分起因就是想解決二層化結構的缺陷。于是,J2EE定義了一套標準來簡化N層企業級應用的開發。它定義了一套標準化的組件,并為這些組件提供了完整的服務。J2EE還自動為應用程序處理了很多實現細節,如安全、多線程等。
  
  用J2EE開發N層應用包括將二層化結構中的不同層面切分成許多層。一個N層化應用A能夠為以下的每種服務提供一個分開的層:
  
  顯示:在一個典型的Web應用中,客戶端機器上運行的瀏覽器負責實現用戶界面。
  
  動態生成顯示: 盡管瀏覽器可以完成某些動態內容顯示,但為了兼容不同的瀏覽器,這些動態生成工作應該放在Web服務器端進行,使用JSP、Servlets,或者XML(可擴展標記語言)和(可擴展樣式表語言)。
  業務邏輯:業務邏輯適合用session EJBs(后面將介紹)來實現。
  
  數據訪問:數據訪問適合用Entity EJBs(后面將介紹)和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-ODBC Bridge
  
  在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 SQL Server以及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字段的內容進行輸出。
  
  import java.sql.*;
  
  public class JDBCExample
  {
  public static void main( String args[] )
  {
  try
  {
  Class.forName("COM.cloudscape.core.JDBCDriver");
  Connection conn = DriverManager.getConnection("jdbc:cloudscape:PhoneBook");
  Statement stmt = conn.createStatement();
  String sql = "SELECT name, phone FROM CONTACT_TABLE ORDER BY name";
  ResultSet resultSet = stmt.executeQuery( sql );
  
  String name;
  String phone;
  while ( resultSet.next() )
  {
  name = resultSet.getString(1).trim();
  phone = resultSet.getString(2).trim();
  System.out.PRintln( name + ", " + phone );
  }
  catch ( Exception e )
  {
  // Handle exception here
  e.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被用于執行名字和目錄服務。它提供了一致的模型來存取和操作企業

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
一区二区欧美日韩视频| 亚洲第一精品夜夜躁人人爽| 国产午夜精品视频免费不卡69堂| 国内外成人免费激情在线视频网站| 精品久久久av| 伊人伊成久久人综合网小说| 欧美自拍视频在线观看| 中文字幕欧美专区| 精品国产精品三级精品av网址| 另类少妇人与禽zozz0性伦| 久久久精品久久久久| 国产精品视频公开费视频| 最近2019年好看中文字幕视频| 91在线观看免费观看| 欧美日韩国产丝袜美女| 中文字幕日韩在线视频| 欧美激情免费在线| 成人午夜高潮视频| 国产精品av免费在线观看| 国产精品高潮呻吟久久av黑人| 国内精品久久久久久影视8| 久久久久日韩精品久久久男男| 久久在线视频在线| 中文字幕欧美专区| 久久久999国产精品| 欧美日韩激情小视频| 国模叶桐国产精品一区| 性欧美xxxx视频在线观看| 日韩精品极品毛片系列视频| 亚洲白拍色综合图区| 欧美国产精品人人做人人爱| 正在播放国产一区| 少妇久久久久久| 韩国国内大量揄拍精品视频| 欧美xxxx18国产| 国产精品高潮呻吟久久av无限| 91精品国产综合久久久久久蜜臀| 久久精品视频在线| 亚洲成人国产精品| 97在线观看视频国产| 欧美wwwxxxx| 久久视频中文字幕| 最近2019中文字幕一页二页| 91网站在线看| 热久久这里只有| 欧美国产视频一区二区| 国产在线拍偷自揄拍精品| 欧美性猛交xxxx乱大交3| 久久免费视频这里只有精品| 国产精品久久久久久久久久ktv| 自拍偷拍亚洲欧美| 国产精品成人品| 亚洲国产日韩欧美在线图片| 久久久久久久影视| 亚洲女人被黑人巨大进入al| 国产激情综合五月久久| 一本一本久久a久久精品牛牛影视| 91免费电影网站| 国产成人在线播放| 久久久免费精品视频| 国自在线精品视频| 色琪琪综合男人的天堂aⅴ视频| 一区二区三区国产在线观看| 一本一本久久a久久精品牛牛影视| 日本道色综合久久影院| 亚洲一区美女视频在线观看免费| 91九色单男在线观看| 日韩成人性视频| 亚洲一区二区久久久| 日韩欧美a级成人黄色| 国产ts一区二区| 成人福利免费观看| 黄色一区二区三区| 亚洲偷熟乱区亚洲香蕉av| 亚洲天堂男人天堂| 亚洲在线观看视频| 国产精品白嫩美女在线观看| 国产精品入口福利| 欧美成年人视频网站欧美| 国产日本欧美一区二区三区| 成人日韩在线电影| 亚洲www永久成人夜色| 中文字幕亚洲一区在线观看| 色综合久久88| 亚洲jizzjizz日本少妇| 在线观看日韩视频| wwwwwwww亚洲| 日本久久久a级免费| 亚洲精品美女免费| 性欧美视频videos6一9| 97视频在线观看视频免费视频| 国产成人综合久久| 亚洲天堂一区二区三区| 日韩综合中文字幕| 欧美性生交xxxxx久久久| 亚洲国产成人在线播放| 欧美性理论片在线观看片免费| 国产精品直播网红| 国产精品久久9| 亚洲欧美制服丝袜| 亲爱的老师9免费观看全集电视剧| 精品亚洲国产成av人片传媒| 日本老师69xxx| 日韩亚洲国产中文字幕| 美女av一区二区| 亚洲毛片在线免费观看| 中文字幕亚洲一区二区三区| 日韩中文在线中文网在线观看| 国产精品视频xxx| 亚洲国产精品va在线看黑人动漫| 亚洲一区二区三区四区在线播放| 热99精品只有里视频精品| 欧美激情视频一区二区三区不卡| 亚洲高清av在线| 亚洲最大成人在线| 国产视频精品自拍| 亚洲人av在线影院| 欧美午夜视频一区二区| 亚洲色图校园春色| 久久久之久亚州精品露出| 亚洲成人在线网| 91精品国产一区| 国产小视频国产精品| 精品久久在线播放| 在线视频欧美日韩精品| 国产一区二区黑人欧美xxxx| 欧美精品videofree1080p| 欧美怡春院一区二区三区| 日韩电视剧免费观看网站| 欧美精品激情视频| 欧美激情一级二级| 欧美日韩黄色大片| 一区二区av在线| 亚洲韩国日本中文字幕| 色偷偷9999www| 亚洲r级在线观看| 国产欧美va欧美va香蕉在| 精品亚洲夜色av98在线观看| 岛国av在线不卡| 亚洲奶大毛多的老太婆| 亚洲国产一区二区三区在线观看| 欧美另类69精品久久久久9999| 亚洲免费视频一区二区| 亚洲精品久久久久中文字幕二区| 国产精品久久久久久av福利软件| 8090理伦午夜在线电影| 国产精品99导航| 在线视频日本亚洲性| 成人在线免费观看视视频| 久久伊人精品一区二区三区| 91中文字幕在线| 国产一区二区三区三区在线观看| 色悠久久久久综合先锋影音下载| 91在线视频导航| 欧美激情视频给我| 成人a级免费视频| 亚洲在线免费观看| 69av视频在线播放| 久99九色视频在线观看| 久久av中文字幕| 国产精品电影在线观看| 亚洲欧洲国产伦综合| 性色av一区二区三区免费| 91精品国产自产在线|