亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? 0091.htm

?? 關于java的開發(fā)文檔
?? HTM
字號:
<html>

<head>
<title>新時代軟件教程:操作系統(tǒng) 主頁制作 服務器 設計軟件 網絡技術 編程語言 文字編輯</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<style>
<!--
body, table {font-size: 9pt; font-family: 宋體}
a {text-decoration:none}
a:hover {color: red;text-decoration:underline}
.1  {background-color: rgb(245,245,245)}
-->
</style>
</head>
<p align="center"><script src="../../1.js"></script></a>
    <p align="center"><big><strong>JNDI</strong></big></p>

<div align="right">---(文/姜天戩)</div>

<TABLE width="90%">
  <TBODY>
  <TR>
    <TD class=page><A name=one>一、Naming和Directory 的概念</A> <BR>
      <P>在介紹JNDI之前,我們先讓讀者對 naming與directory 有最基本的認識,進而了解使用JNDI 的原因。 </P>
      <P>Naming 在電腦系統(tǒng)上是最基本的服務之一,藉著名稱 (names)與物件 (objects)的系結 
      (binding),使用者透過正確地描述環(huán)境(context)來存取欲使用的物件。例如:DNS(Domain Name System)將主機名稱「 
      javacenter.cis.th u.edu.tw」對應到 IP Address「 140.128.104.30」,以方便使用者記憶。 </P>
      <P>Directory可視為 naming概念的擴充,讓物件擁有屬性 
      (attributes)以記錄額外的資訊。於是,我們可以透過名稱來查看(look up)物件并獲得該物件的屬性資訊,或是利用屬性作為搜尋的過濾條件 
      (search filter)。例如:電話簿,記錄著每個人登記的電話號碼。從這個最常見的例子中不難看出directory與 
      database明顯的差異之一:directory 的屬性可以有很多筆資料,正如每個人可以同時擁有很多個電話號碼。 
      Directory目前在電腦系統(tǒng)上較著名的應用系統(tǒng)與架構有 Novell公司的 NDS(Novell Directory 
      Services)、Sun公司的NIS(Network Information Service),與即將成為網絡上一個新標準的 
      LDAP(Lightweight Directory Access Protocol)<A 
      href="#2">[2]</A> 。 </P>
      <P>Java在JNDI傳統(tǒng)的應用就如同其他的程式語言一般,透過 Java applications 
      或applets,存取或檢索(retrieve)在 directory內的物件屬性。例如以Java 開發(fā)的電子郵件客戶端程式(client 
      program)能夠透過 directory的方式來管理其中的通訊錄;然而藉著擴充 
      directory的資訊,例如將印表機的組態(tài)存入directory, 
      Java程式可以檢索網路上符合 求的印表機,然後把資料傳送至該印表機列印。換言之,支援 directory的Java程式將能把directory 
      中的物件當成Java 的物件來使用。 </P><A name=two>二、JNDI架構</A> <BR>
      <P>Java Naming and Directory Interface是一套提供naming和 directory功能的 
      API,Java應用程式開發(fā)者透過使用 JNDI,在naming和 directory方面的應用上就有了共通的準則。 </P>
      <P>JNDI包含一組API和一組SPI(Service Provider Interface)。Java 程式透過JNDI API 
      存取各種naming和 directory服務; JNDI SPI則使得各種naming和 
      directory服務透明化,允許Java程式透過JNDI API來存取這些服務。見下圖 *。 </P>
      <TABLE>
        <TBODY>
        <TR>
          <TD><IMG src="images/jndi_f1.gif"> </TD></TR>
        <TR>
          <TD>
            <CENTER>圖一、 Jndi架構圖<A 
            href="#1">[1]</A> 
            </CENTER></TD></TR></TBODY></TABLE><A name=three>三、JNDI packages</A> <BR>
      <P>JNDI分為三個 packages: </P>
      <P>javax.naming包含 naming服務的類別 (classes)和存取介面(interfaces for accessing)。其中 
      Contextapi讓使用者可以定義物件在 namespaces中的「相對位置」。 naming服務便以 
      context為介面,提供查看、系結、物件更名(renaming objects)等功能。 InitialContextapi 提供naming或 
      directory服務的一個起始位置。因為在JNDI的世界中沒有絕對的root觀念,所有的動作都建立在context上;有了起始位置,使用者才能藉著它對其 
      context上的物件進行存取。 </P>
      <P>NamingExceptionap i則為JNDI定義的一組類別,負責偵測 (catch)所有發(fā)生在 naming或directory 
      服務里的例外狀況 (exceptions)。 </P>
      <P>javax.naming.dire ctory 這個 package由 javax.naming擴充而來,提供存取 
      directory服務的功能─建立在naming 服務上,增加對 directory中的物件檢索其屬性( retrieve 
      attributes)和透過指定屬性為條件來搜尋(search)等功能。 DirContextapi提供物件在directory內 
      context的介面,與 Contextapi的運作方式類似,但更進一步定義了查詢和更新directory中物件屬性的方法( methods)。 
      </P>
      <P>javax.naming.spi 讓系統(tǒng)發(fā)展者為特定的naming或 directory系統(tǒng)來撰寫使用JNDI的應用程式,例如在 
      Plug-ins、Java Object Support及 Multiple Naming Systems(Federatio n)等方面的應用。 
      </P><A name=four>四、JNDI使用范例 </A><BR>
      <P>使用JNDI 要以下的軟體及系統(tǒng): </P>
      <TABLE width=200>
        <TBODY>
        <TR>
          <TD align=right>jdk 1.1.2 以上版本 </TD></TR>
        <TR>
          <TD align=right>JNDI API </TD></TR>
        <TR>
          <TD align=right>Service Provider </TD></TR>
        <TR>
          <TD align=right>Naming and Directory Server </TD></TR></TBODY></TABLE>
      <P>首先設定classpath ,編譯時 要的 classpath為 jndi.jar所在的完整路徑。例如: </P>
      <P align=center>
      <TABLE width="70%">
        <TBODY>
        <TR>
          <TD class=detail><PRE><CODE>

CLASSPATH=C:\jndi\lib\jndi.jar
</CODE></PRE></TD></TR></TBODY></TABLE></P>
      <P>執(zhí)行時 要的 classpath: service provider 所在的完整路徑。例如: </P>
      <P align=center>
      <TABLE width="70%">
        <TBODY>
        <TR>
          <TD class=detail><PRE><CODE>


CLASSPATH=C:\Novell\lib\njcl.jar

</CODE></PRE></TD></TR></TBODY></TABLE></P>
      <P>程式必 依照所使用的服務來import packages,本范例程式的目的為搜尋目錄中的物件并列出其屬性,因此  import naming和 
      directory兩個 packages,請參照程式注標<A 
      href="#p1">(1)</A>。而在JNDI的程式中最重要的就是設定initial 
      context ,通常至少 提供 factory.initial與 provider.url兩個環(huán)境資訊,依照所選用的service 
      provider而有所不同。在此程式中采用NDS為目錄服務系統(tǒng),於是必 引入 Novell公司開發(fā)的 SPI,見程式注標<A 
      href="#p2">(2)</A>。每個SPI所 的相關資訊,都應可在該SPI的說明文件中找到。設定完成 
      SPI所 的環(huán)境資訊之後,便可呼叫 constructor來產生 initial context;請注意在此我們使用的是目錄服務,所以呼叫的是 
      InitialDirContext api,見程式注標<A 
      href="#p3">(3)</A>。接著指定搜尋時的過濾條件,base 
      所指的是搜尋開始的層級,在此范例中設定為一個目錄 NCLTREE里的 o(organization)=N CL,見注標<A 
      href="#p4">(4)</A>;filter則是設定搜尋的條件,程式要求搜尋所有 
      cn(common name)以 admin或Barabbas為起始的物件(使用者),見注標<A 
      href="#p5">(5)</A>;被宣告為 
      SearchControlsapi 
      的constraints負責進行搜尋相關設定,在此僅設定搜尋的范圍。搜尋范圍通常有三種類型,分別是僅搜尋本身這一層、搜尋至下一層,及搜尋本層所有的整棵子樹。本例中設定為搜尋整棵子樹,見注標<A 
      href="#p6">(6)</A>。隨後程式利用 
      DirContextapi的 searchapi method 來判斷是否找到符合搜尋條件之物件,再以 SearchResultapi的 
      getAttributesapi method來取得屬性資料并輸出。 </P>
      <P>JNDI API更完整的使用方法,將於未來的文章中逐一介紹,因此本范例程式的內容便不再詳細解說,請有興趣的讀者自行參考 
      JNDI的相關資料。范例程式的完整內容與執(zhí)行范例附於文末。 </P><A name=five>五、結論</A> <BR>
      <P>在網№網路爆炸性成長,各式網路服務爭相嶄露頭角的今日,目錄服務已經深入其中的各個層面,尤其是在電子商務的應用上。使用Java的程式發(fā)展者若想要跟上這一波潮流,JNDI將是開啟目錄服務大門的金鑰! 
      </P><A name=six>六、參考資料</A> 
      <DL>
        <DT>
        <DD><A name=1>[1]</A> The JNDI Tutorial by Rosanna Lee, <A 
        href="../../www.javasoft.com/products/jndi/tutorial/index.html">htt 
        p://www.javasoft. com/products/jndi /tutorial/index.h tml</A> 
        <DD><A name=2>[2]</A> Novell Class Libraries for Java(including Novell 
        providers for JNDI), <A 
        href="../../developer.novell.com/ndk/doc/njcl/index.htm">http://developer.novell.com/ndk/doc/njcl/index.htm</A> 
        </DD></DL><A name=seven>七、范例程式完整內容</A> 
      <P align=center>
      <TABLE width="70%">
        <TBODY>
        <TR>
          <TD class=detail><PRE><CODE>


import javax.naming.*;//<A name=p1><FONT color=red>(1)</FONT>
import javax.naming.directory.*;//<FONT color=red>(1)</FONT>
import java.util.Properties;
import java.util.Enumeration;

class Search{
	public static void main(String[] args) {
		try {
    		/* Create an environment for the initial directory context.
       		The properties specify the NDS provider, 
       		And the NDS Server's Tree Name. */
    		Properties env = new Properties();
    		env.put("java.naming.factory.initial",
                   "com.novell.service.nds.naming.NdsInitialContextFactory");//<A name=p2><FONT color=red>(2)</FONT>
		env.put("java.naming.provider.url", "nds://NCLTREE/");//<FONT color=red>(2)</FONT>
    		/* Create the initial directory context. */
    		DirContext ctx = new InitialDirContext(env);//<A name=p3><FONT color=red>(3)</FONT>
    		/* Set up and perform the search.  Find all people in NCL
       		whose common name starts with admin or Barabbas. */
    		String base = "o=NCL";//<A name=p4><FONT color=red>(4)</FONT>
    		String filter = "(|(cn=admin*)(cn=Barabbas*))";//<A name=p5><FONT color=red>(5)</FONT>
    		SearchControls constraints = new SearchControls();//<A name=p6><FONT color=red>(6)</FONT>
    		constraints.setSearchScope(SearchControls.SUBTREE_SCOPE);//<FONT color=red>(6)</FONT>
    		NamingEnumeration results = ctx.search(base,filter,constraints);
    		/* Print the search results. */
    		if (!results.hasMore()) {
      			System.out.println("Nothing found.");
    		} else {
        			/* For each entry found. */
      			while (results.hasMore()) {
				SearchResult sr = (SearchResult) results.next();
        			System.out.println(sr.getName());
        			Attributes attrs = sr.getAttributes();
        			if (attrs == null) {
          				System.out.println("No attributes");
        			} else {
              			/* For each attribute of the entry. */
       				for (NamingEnumeration ae = attrs.getAll(); ae.hasMore();) {
        					Attribute attr = (Attribute) ae.next();            					String id = attr.getID();
       					/* For each value of the attribute. */
          				for (Enumeration vals = attr.getAll(); vals.hasMoreElements();
                				System.out.println("   "+id + ": " + vals.nextElement()));
          					}
          				}
          			}
          		}
  	} catch (NamingException e) {
    	/* Handle any name/directory exceptions. */
    	System.err.println("Search failed: " + e);  		
  	} catch (Exception e) {
       /* Handle any other types of exceptions. */
    	System.err.println("Non-naming error: " + e.getMessage());
  	}
 	}
}
</CODE></PRE></A></TD></TR></TBODY></TABLE></P>
      <P align=center>
      <TABLE width="70%">
        <TBODY>
        <TR>
          <TD class=detail><PRE><CODE>


C:\javaset\jndi112&gt;java Search
admin.NCLNetworks.NCL
   NRD:Registry Index: com.novell.service.nds.net.NetStream@1275824c
   ACL: [All Attributes Rights];admin.NCLNetworks.NCL;2
   ACL: Login Script;admin.NCLNetworks.NCL;6
   ACL: Message Server;[Public];2
   ACL: Print Job Configuration;admin.NCLNetworks.NCL;6
   SA: Case Ignore String Tung Hai University
   Message Server: Distinguished Name NCLSERVER.NCLNetworks.NCL
   Internet EMail Address: Case Ignore String barabbas@dorm.thu.edu.tw
   Internet EMail Address: Case Ignore String s852858@student.thu.edu.tw
   Internet EMail Address: Case Ignore String tjJiang@ncl.cis.thu.edu.tw
   Home Directory: 0;NCLSERVER_SYS.NCLNetworks.NCL;home\Barabbas
   Generational Qualifier: Case Ignore String None
   Surname: Case Ignore String Jiang
   OU: Case Ignore String Computer &amp; Information Science
   Used By: 0;[Root];
   Initials: Case Ignore String None
   CN: Case Ignore String admin
   CN: Case Ignore String tjJiang
   Postal Office Box: Case Ignore String Tung Hai University
   Revision: 272
   Password Required: false
   Telephone Number: Telephone Number +886-4-3594359 ext.&lt;71000&gt;
   S: Case Ignore String Taiwan
   NRD:Registry Data: com.novell.service.nds.net.NetStream@12a9824c
   Facsimile Telephone Number: None;0;
   Network Address: 1;4;
   Network Address: 1;4;
   Network Address: 1;4;
Non-naming error: String index out of range: -50
</CODE></PRE></TD></TR></TBODY></TABLE>

  </table>
<p align="center"><script src="../../2.js"></script></a>
</body>
</html>

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品久久人人做人人爰| 99视频热这里只有精品免费| 一区二区三区在线播| 国产精品久久久久久久久快鸭| 日韩欧美国产午夜精品| 欧美第一区第二区| 日韩一级在线观看| 欧美成人video| 337p日本欧洲亚洲大胆精品| 久久久精品一品道一区| 中文字幕精品在线不卡| 1000精品久久久久久久久| 亚洲天堂2014| 亚洲综合色区另类av| 亚洲综合视频在线观看| 水野朝阳av一区二区三区| 肉色丝袜一区二区| 狠狠色丁香久久婷婷综合丁香| 国产福利一区在线观看| 国产精品一级在线| a美女胸又www黄视频久久| 91玉足脚交白嫩脚丫在线播放| 欧美三级视频在线播放| 日韩精品一区二区三区四区| 久久精品综合网| 艳妇臀荡乳欲伦亚洲一区| 偷窥国产亚洲免费视频| 国产成人av自拍| 91久久精品日日躁夜夜躁欧美| 欧美绝品在线观看成人午夜影视| 日韩欧美一级精品久久| 亚洲人午夜精品天堂一二香蕉| 性久久久久久久久久久久 | 高清不卡在线观看av| 色综合久久综合| 久久午夜免费电影| 亚洲一级二级三级| 成人免费看片app下载| 欧美丰满嫩嫩电影| 亚洲欧洲精品天堂一级| 美女看a上一区| 在线观看一区日韩| 久久精品视频一区二区| 亚洲综合视频在线观看| 成人午夜伦理影院| 欧美成人一区二区三区片免费| 亚洲精品欧美综合四区| 国产aⅴ综合色| 日韩精品专区在线影院重磅| 一区二区三区在线免费播放| 国产激情一区二区三区四区 | 亚洲欧美欧美一区二区三区| 蜜臀国产一区二区三区在线播放| 一本色道久久加勒比精品| 欧美xxxxx牲另类人与| 一区二区三区精密机械公司| 国产成人综合在线播放| 日韩一区二区视频在线观看| 伊人婷婷欧美激情| 91同城在线观看| 国产日韩欧美高清在线| 久久精品国产精品亚洲红杏| 91精品国产手机| 亚洲另类中文字| 99在线精品免费| 欧美国产一区二区在线观看| 国产精品99久久久久久似苏梦涵| 久久精品国产澳门| 欧美日韩久久久一区| 亚洲精品中文在线| 在线中文字幕一区二区| 国产精品久久久久aaaa| 成人午夜视频在线观看| 国产欧美综合在线观看第十页| 九一九一国产精品| 色哟哟精品一区| 亚洲女厕所小便bbb| 91蜜桃在线观看| 亚洲精品国产第一综合99久久| 91在线精品一区二区| 中文字幕亚洲成人| 一本大道久久a久久综合婷婷| 国产精品成人午夜| 97久久人人超碰| 一区二区视频在线| 在线观看一区日韩| 男人的天堂亚洲一区| 欧美一级电影网站| 久久99久久99小草精品免视看| 26uuu亚洲综合色| 高清国产午夜精品久久久久久| 国产精品久久看| 91影院在线观看| 亚洲午夜一区二区三区| 91精选在线观看| 国内精品免费**视频| 中文在线一区二区 | 欧美日韩视频专区在线播放| 日韩影院在线观看| 26uuu色噜噜精品一区二区| 国产精品99久久久久久久vr | 国产精品视频线看| 91视频一区二区| 秋霞电影网一区二区| 国产日产欧美一区| 色哟哟国产精品免费观看| 美腿丝袜亚洲色图| 亚洲图片你懂的| 91麻豆精品国产91久久久资源速度 | 欧美三区在线观看| 精品一区二区日韩| 一区二区三区在线观看动漫| 欧美在线观看视频一区二区三区| 精品一区二区三区香蕉蜜桃| 亚洲欧洲一区二区三区| 欧美一区二区三区成人| av综合在线播放| 日韩高清不卡在线| 18欧美亚洲精品| 日韩精品一区二区三区视频在线观看 | 欧美激情一区二区| 在线电影国产精品| 91在线免费视频观看| 美女在线观看视频一区二区| 亚洲精品国产一区二区精华液| 精品毛片乱码1区2区3区| 欧美亚洲国产一区二区三区va| 成人精品国产一区二区4080| 日韩av电影一区| 亚洲电影视频在线| 亚洲免费观看高清完整版在线 | 91在线视频免费91| 国产成人综合亚洲91猫咪| 蜜桃视频免费观看一区| 亚洲一区二区三区四区在线观看| 欧美国产日韩精品免费观看| 精品久久久久香蕉网| 欧美一区二区三区不卡| 欧美日韩在线播放一区| www.欧美日韩国产在线| 国产成人免费视| 国产精选一区二区三区| 精品系列免费在线观看| 美女视频一区二区| 天堂va蜜桃一区二区三区漫画版| 亚洲乱码中文字幕综合| 亚洲欧美日韩在线| 国产精品剧情在线亚洲| 国产欧美一区二区精品性色超碰 | 亚洲国产成人高清精品| 日韩美女视频一区二区 | 欧美一区二区不卡视频| 欧美日韩一区二区三区四区五区 | 国产一区在线视频| 久久66热偷产精品| 麻豆成人免费电影| 美腿丝袜在线亚洲一区| 日韩电影在线一区二区三区| 奇米色777欧美一区二区| 天天综合日日夜夜精品| 三级在线观看一区二区| 亚洲视频一区在线观看| 日韩理论在线观看| 亚洲精品成人精品456| 一区二区三区欧美在线观看| 一区二区三区 在线观看视频| 亚洲国产婷婷综合在线精品| 综合色中文字幕| 无吗不卡中文字幕| 日韩电影在线观看电影| 老司机午夜精品99久久| 激情文学综合网| 国产乱人伦精品一区二区在线观看 | 91精品国产综合久久福利| 91污片在线观看| 欧美在线观看禁18| 91精品中文字幕一区二区三区| 日韩欧美久久久| 中文字幕精品综合| 亚洲一区二区三区小说| 蜜臀av一级做a爰片久久| 国产乱人伦偷精品视频免下载| 成人黄色大片在线观看| 色婷婷精品久久二区二区蜜臀av| 欧美日韩午夜影院| 欧美一卡二卡三卡四卡| 国产清纯白嫩初高生在线观看91 | 激情成人综合网| 精品一区二区三区视频在线观看| 国产精品中文欧美| 91蜜桃免费观看视频| 欧美成人一区二区三区| 中文字幕视频一区| 天天色综合天天| 岛国av在线一区| 91精品国产综合久久婷婷香蕉| 中文字幕电影一区| 美日韩一区二区| 91国模大尺度私拍在线视频| 久久嫩草精品久久久精品|