国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

J2EE的13種核心技術(shù)(二)

2019-11-18 16:03:14
字體:
供稿:網(wǎng)友

  java Naming and Directory Interface (JNDI)

JNDI API被用于執(zhí)行名字和目錄服務(wù)。它提供了一致的模型來存取和操作企業(yè)級(jí)的資源如DNS和LDAP,本地文件系統(tǒng),后者在應(yīng)用服務(wù)器中的對(duì)象。

在JNDI中,在目錄結(jié)構(gòu)中的每一個(gè)結(jié)點(diǎn)稱為context。每一個(gè)JNDI名字都是相對(duì)于context的。這里沒有絕對(duì)名字的概念存在。對(duì)一個(gè)應(yīng)用來說,它可以通過使用 InitialContext 類來得到其第一個(gè)context:




Context ctx = new InitialContext();




應(yīng)用可以通過這個(gè)初始化的context經(jīng)有這個(gè)目錄樹來定位它所需要的資源或?qū)ο蟆@纾僭O(shè)你在Weblogic服務(wù)器中展開了一個(gè)EJB并將home接口綁定到名字 myApp.myEJB ,那么該EJB的某個(gè)客戶在取得一個(gè)初始化context以后,可以通過以下語句定位home接口:


MyEJBHome home = ctx.lookup( "myApp.myEJB" );




在這個(gè)例子中,一旦你有了對(duì)被請(qǐng)求對(duì)象的參考,EJB的home接口就可以在它上面調(diào)用方法。我們將在下面的"EnterPRise Java Beans"章節(jié)中做更多的介紹。

以上關(guān)于JNDI的討論只是冰山之一角而已。如果要更進(jìn)一步地在context中查找對(duì)象,JNDI也提供了一些方法來進(jìn)行以下操作: 

將一個(gè)對(duì)象插入或綁定到context。這在你展開一個(gè)EJB的時(shí)候是很有效的。

從context中移去對(duì)象。

列出context中的所有對(duì)象。

創(chuàng)建或刪除子一級(jí)的context。

接下來,我們要開始關(guān)注EJB了。

Enterprise Java Beans (EJB)

J2EE技術(shù)之所以贏得某體廣泛重視的原因之一就是EJB。它們提供了一個(gè)框架來開發(fā)和實(shí)施分布式商務(wù)邏輯,由此很顯著地簡化了具有可伸縮性和高度復(fù)雜的企業(yè)級(jí)應(yīng)用的開發(fā)。EJB規(guī)范定義了EJB組件在何時(shí)如何與它們的容器進(jìn)行交互作用。容器負(fù)責(zé)提供公用的服務(wù),例如目錄服務(wù)、事務(wù)管理、安全性、資源緩沖池以及容錯(cuò)性。

EJB規(guī)范定義了3中基本的bean類型:

Stateless session beans: 提供某種單一的服務(wù),不維持任何狀態(tài),在服務(wù)器故障發(fā)生時(shí)無法繼續(xù)存在,生命期相對(duì)較短。例如,一個(gè)stateless session bean可能被用于執(zhí)行溫度轉(zhuǎn)換計(jì)算。

Stateful session bean: T提供了與客戶端的會(huì)話交互,可以存儲(chǔ)狀態(tài)從而代表一個(gè)客戶。典型例子是購物車。Stateful session bean在服務(wù)器故障時(shí)無法繼續(xù)生存,生命氣相對(duì)較短。每一個(gè)實(shí)例只用于一個(gè)單個(gè)的線程。

Entity beans: 提供了一致性數(shù)據(jù)的表示-- 通常存放在數(shù)據(jù)庫中 -- 在服務(wù)器故障發(fā)生后能繼續(xù)存在。多用戶情況下可以使用EJB來表示相同的數(shù)據(jù)。entity EJB的一個(gè)典型例子是客戶的帳號(hào)信息。

盡管有以上的區(qū)別,所有的EJB還是有許多的共同之處。它們都處理home interface。它定義了一個(gè)客戶端是如何創(chuàng)建與消亡EJB的。可以在bean中對(duì)定義了客戶端方法的遠(yuǎn)程接口進(jìn)行調(diào)用;bean類則執(zhí)行了主要的商務(wù)邏輯。

描述EJB的開發(fā)已經(jīng)超出了本文的范圍。但是,如果一個(gè)EJB已經(jīng)被開發(fā)了或者從第三方進(jìn)行了購買,它就必須在應(yīng)用服務(wù)器中進(jìn)行發(fā)布。WebLogic Server 5.1帶有一個(gè)EJB Deployer Tool來協(xié)助處理EJB的發(fā)布。當(dāng)你使用EJB Deployer Tool的時(shí)候,你要定義客戶端所用的JNDI名字來定位EJB。Deployer Tool將生成wrapper類來處理和容器的通信以及在一個(gè)jar文件中把被請(qǐng)求的Java類綁定在一起。

一旦EJB被發(fā)布,客戶端就可以使用它的JNDI名字來定位EJB。首先,它必須得到一個(gè)到home接口的reference。然后,客戶端可以使用該接口,調(diào)用一個(gè) create() 方法來得到服務(wù)器上運(yùn)行的某個(gè)bean實(shí)例的句柄;最后,客戶端可以使用該句柄在bean中調(diào)用方法。

了解 EJB后,讓我們?cè)賮砜?a href="http://www.survivalescaperooms.com/jsp.asp">jsp。

JavaServer Pages (JSPs)

我們中間可能已經(jīng)有許多人已經(jīng)熟悉Microsoft的Active Server Pages (asp)技術(shù)了。JSP和ASP相對(duì)應(yīng)的,但更具有平臺(tái)對(duì)立性。他們被設(shè)計(jì)用以幫助Web內(nèi)容開發(fā)人員創(chuàng)建動(dòng)態(tài)網(wǎng)頁,并且只需要相對(duì)較少的代碼。 即使Web設(shè)計(jì)師不懂得如何編程也可以使用JSP,因?yàn)镴SP應(yīng)用是很方便的。 JSP頁面由Html代碼和嵌入其中的Java代碼所組成。服務(wù)器在頁面被客戶端所請(qǐng)求以后對(duì)這些Java代碼進(jìn)行處理,然后將生成的HTML頁面返回給客戶端的瀏覽器。

下面我們來看一個(gè)JSP的簡單實(shí)例。它只顯示了服務(wù)器的當(dāng)前日期和時(shí)間。雖然,對(duì)語法的具體解釋已經(jīng)超出了本文的范圍,但我們還是可以很直觀地看到,Java代碼被放在符號(hào)的中間,而Java的表達(dá)式則放在符號(hào)之間。

Date JSP sample

The current date is .

您可能有時(shí)候聽說過JHTML。這是JSP以前的一種較老的標(biāo)準(zhǔn)。WebLogic服務(wù)器既可支持JSP,又可支持JHTML。請(qǐng)注意,在缺省狀況下,JSP在WebLogic服務(wù)器中并沒有處于有效狀態(tài)。要使之有效,你可以編輯weblogic.properties文件。如果Web服務(wù)器還沒有處于有效狀態(tài),則要先使之有效。Servlet的情況和JSP是一樣的。

下面是: Java servlets

Java servlets

servlet提供的功能大多與JSP類似,不過實(shí)現(xiàn)的方式不同。JSP通常是大多數(shù)HTML代碼中嵌入少量的Java代碼,而servlets全部由Java寫成并且生成HTML。

servlet是一種小型的Java程序,它擴(kuò)展了Web服務(wù)器的功能。作為一種服務(wù)器端的應(yīng)用,當(dāng)被請(qǐng)求時(shí)開始執(zhí)行,這和CGI Perl腳本很相似。Servlets和CGI腳本的一個(gè)很大的區(qū)別是:每一個(gè)CGI在開始的時(shí)候都要求開始一個(gè)新的進(jìn)程 -- 而servlets是在servlet引擎中以分離的線程來運(yùn)行的。因此servlets在可伸縮性上提供了很好的改進(jìn)。

在開發(fā)servlets的時(shí)候,您常常需要擴(kuò)展javax.servlet.http.HttpServlet 類,并且override一些它的方法,其中包括:

service(): 作為dispatcher來實(shí)現(xiàn)命令-定義方法

doGet(): 處理客戶端的HTTP GET請(qǐng)求。

doPost(): 進(jìn)行HTTP POST操作

其它的方法還包括處理不同類型的HTTP請(qǐng)求 -- 可以參考HttpServlet API文檔。

以上描述的是標(biāo)準(zhǔn)J2EE Servlet API的各種方法。WebLogic服務(wù)器提供了一個(gè)該API完整的實(shí)現(xiàn)途徑。一旦你開發(fā)了一個(gè)servlet,你就可以在weblogic.properties 中加以注冊(cè)并由此可以在WebLogic服務(wù)器中對(duì)它進(jìn)行配置。

通過Java servlets,我們已經(jīng)到達(dá)了J2EE主要技術(shù)的末尾了。但J2EE所提供的并不止于這些。下面的段落中我們將簡要地看一下現(xiàn)存的一些技術(shù),包括RMI, Java IDL和CORBA, JTA, 以及xml,等等。

Remote Method Invocation (RMI)

正如其名字所表示的那樣,RMI協(xié)議是在遠(yuǎn)程對(duì)象上調(diào)用一些方法。它使用了連續(xù)序列方式在客戶端和服務(wù)器端傳遞數(shù)據(jù)。RMI是一種被EJB使用的更下層的協(xié)議。

Java IDL/CORBA

在Java IDL的支持下,開發(fā)人員可以將Java和CORBA集成在一起。 他們可以創(chuàng)建Java對(duì)象并使之可在CORBA ORB中展開, 或者他們還可以創(chuàng)建Java類并作為和其它ORB一起展開的CORBA對(duì)象的客戶。后一種方法提供了另外一種途徑,通過它Java可以被用于將你的新的應(yīng)用和legacy系統(tǒng)相集成。

Java Transaction Architecture (JTA)/Java Transaction Service (JTS)

JTA定義了一種標(biāo)準(zhǔn)的API,應(yīng)用系統(tǒng)由此可以存取各種事務(wù)監(jiān)控。

JTS是CORBA OTS事務(wù)監(jiān)控的基本的實(shí)現(xiàn)。JTS規(guī)定了事務(wù)管理器的實(shí)現(xiàn)方式。該事務(wù)管理器是在高層支持Java Transaction API (JTA)規(guī)范,并且在較底層實(shí)現(xiàn)OMG OTS specification的Java映像。JTS事務(wù)管理器為應(yīng)用服務(wù)器、資源管理器、獨(dú)立的應(yīng)用以及通信資源管理器提供了事務(wù)服務(wù)。

JavaMail and JavaBeans Activation Framework

JavaMail是用于存取郵件服務(wù)器的API,它提供了一套郵件服務(wù)器的抽象類。不僅支持SMTP服務(wù)器,也支持IMAP服務(wù)器。

JavaMail利用JavaBeans Activation Framework (JAF)來處理MIME-編碼的郵件附件。MIME的字節(jié)流可以被轉(zhuǎn)換成Java對(duì)象,或者轉(zhuǎn)換自Java對(duì)象。由此大多數(shù)應(yīng)用都可以不需要直接使用JAF。

Java Messaging Service (JMS)

JMS是用于和面向消息的中間件相互通信的應(yīng)用程序接口(API)。它既支持點(diǎn)對(duì)點(diǎn)的域,有支持發(fā)布/訂閱(publish/subscribe)類型的域,并且提供對(duì)下列類型的支持:經(jīng)認(rèn)可的消息傳遞,事務(wù)型消息的傳遞,一致性消息和具有持久性的訂閱者支持。JMS還提供了另一種方式來對(duì)您的應(yīng)用與legacy backend系統(tǒng)相集成。

Extensible Markup Language (XML)

XML是一種可以用來定義其它標(biāo)記語言的語言。它被用來在不同的商務(wù)過程中共享數(shù)據(jù)。XML的發(fā)展和Java是相互獨(dú)立的,但是,它和Java具有的相同目標(biāo)正是平臺(tái)獨(dú)立性。通過將Java和XML的組合,您可以得到一個(gè)完美的具有平臺(tái)獨(dú)立性的解決方案。目前正有許多不同的公司在為Java和XML的組合而努力。如果要了解更多的這方面的信息,可以訪問Sun的Java-XML頁面,或者IBM developerWorks的XML Zone。

(出處:http://www.survivalescaperooms.com)



發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 宁南县| 内乡县| 满洲里市| 鹿泉市| 丰台区| 高要市| 凤阳县| 江陵县| 伽师县| 油尖旺区| 高雄县| 阿城市| 来安县| 高安市| 平潭县| 顺义区| 全椒县| 新龙县| 新干县| 马关县| 黑河市| 卢氏县| 嘉峪关市| 襄樊市| 清新县| 玛多县| 朝阳县| 太湖县| 汝阳县| 惠安县| 响水县| 喀喇沁旗| 辛集市| 雷山县| 翁牛特旗| 甘孜县| 永仁县| 镇远县| 周至县| 平塘县| 桓台县|