熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> JSP教程 >> 正文

Java與JavaScript的通信lixiaolong3456

2013-11-15 11:44:50  來源: JSP教程 

  lixiaolong(翻譯)
  
  文/ Jeremiah Talkar
  
  信任
  
  . 聊天演示程序內在的想法連同這篇文章一起都是我自己的我所見過的所有聊天程序不是完全基於JAVA就是HTML我的方法是這兩種方法的一個很好的平衡
  
  . 我通過在Netscape開發者站點閱讀大量的文章後收集了在JAVA和JAVASCRIPT間通信的技術信息
  
  . 我第一次在讀Danny Goodman的文章時(The JavaScript Apostle on the Netscape site)偶然遇到術語不知名的applet(Faceless applet)因此出於對Danny的信任我使用了這個非常切題的術語
  
  放棄
  
  . 這篇文章中討論的技術已經在Windows Professional機器上使用Internet Explorer 和 Netscape Navigator 測試過了在我所知道的最佳作品中這些技術應該在任一浏覽器以上的版本上運行但我不能保證我這樣做因為我沒有時間用這些版本將它測試出來
  
  . 因為JAVASCRIPT是唯一一種在兩種主要浏覽器都得到支持的語言所有的腳本代碼使用這種語言我先前在上使用了一個可用的商業插件這個插件可以讓Netscape Navigator支持VBScript但我去他們的站點核實這個信息的時候這個產品已經沒有列出了
  
  引言
  
  我一直從事現代COM的工作兩年了現在是我公司的e化商業產品團隊的技術領導我明白好的界面設計和在不同環境像Visual C++ Visual Basic 還有腳本下都能很好執行程序的重要性基於界面的程序設計的能力在我的頭腦中已經永遠確立並且作為一個軟件工程師我試著將它應用到我所涉及的每件事情中
  
  在過去的一年裡當ASP+腳本就要被當作這些對象的黏合劑使用的時候經驗告訴我們的勤奮所有的商業邏輯應該被壓縮在COM對象之內設計和開發典型的基礎設施和商業對象要求一個更高的技術設備它用來比較什麼是要求實際使用同一個事物的開發這些對象的首選環境(至少在我的團隊中)是Visual C++ / ATL / STL微軟也鼓勵Visual Basic成為這些對象可選擇的開發環境
  
  這些對象被代表性的稱為不知名的因為他們實現許多邏輯但用戶界面除外它的表現層次(presentation tier)不是一個充足的客戶就是一個不充足的客戶(這個客戶有從最終用戶表達信息和聚集信息的邏輯)然後這樣的一個客戶用這些信息通過使用不知名的對象做一些有意義的事情這整個想法是當商業對象改變不頻繁時表現層次會代表性的要求許多客戶定制表現層次要求的改變也可以通過使用較少的經驗程序來實現
  
  應用這些相同的原理到浏覽器環境當使用一種腳本語言處理表現方面時不知名的二進制模塊中壓縮高度發展的客戶方的邏輯看起來是合乎邏輯的在Windows平台上這些模塊的選項是Java applet和ActiveX 控件/服務器這篇文章的焦點是使用Java applet完成這個目標因為applet是獨立於浏覽器平台和處理器的(對大部分而言)
  
  Applet的簡短歷史
  
  SUN Microsystems年在嘹亮的號角聲中引入了Java appletApplet立即博得WEB世界的歡心因為它們增加了在原來是一個靜態HTML的世界的浏覽器中動態地顯示WEB內容的能力
  
  在最初的日子裡使用Java applet作為最好的一種在網頁中增加動態內容的方式出現了最初Microsoft 試圖使用他們的ActiveX Control技術反對SUN提供的Java applet但是在網頁內部使用控件存在兩個主要問題
  
  ● 二進制模塊是處理器指定的因此不適合作為網頁的一部分運行萬維網(World Wide Web)如此成功的一個主要原因是使用WC標准HTML寫出的大部分網頁對浏覽器和處理器是不可知的事實ActiveX控件正好不符合這個范例
  
  ● 安全是一個大問題因為控件編寫者有足夠的權利在客戶機器上存取資源簽了名的控件允許任何一個人查看網頁並聰明地作出是否應該在他/她的機器上下載一個特定控件的決定但是所有他進行的是一個按鈕意外的點擊(或者是高興地忽略)這樣就留下了易受攻擊的客戶機這也正符合惡意控件編寫者的意圖
  
  當動態HTML終於開始成型時事情徹底地改變了文檔對象模型(Document Object Model )作為可以設計的組件它們用它們自己的屬性和方法揭露了網頁元素即使Internet Explorer和Netscape Navigator浏覽器執行動態HTML有許多不同但使用腳本代碼程序化的改變顯示頁內容本身的根本主題就是是一個巨大的成功Applet突然開始看起來是又舊又粗糙的WC對動態HTML的認可最終對高度發展的動態網頁的新種類調整了語氣
  
  在浏覽器內是使用Java applet有以下列出的幾種優點
  
  ● Applet(對大多數Applet而言)可以在多浏覽器平台和處理器上工作
  
  ● JAVA語言是典型的一種強大的概念性語言
  
  ● JDK有許多典型的且只在高層類庫中創建的有用的類
  
  ● 技術中已經構思了安全applet只能用默認值在方框中運行如果它們要打破方框的限制則Applet必須是已經簽了名的
  
  ● Applet可以就發回用戶化信息上傳/下載文件等而與網頁服務器取得聯系簽了名的applet可以與任何一個服務器聯系而不僅僅是一個它們的主機
  
  ● 通過查看源文件選項不能看到applet代碼因此保護了知識產權
  
  ● JAVA的class文件非常小結果是下載非常快
  
  使用Java apple的缺點
  
  ● 在一次浏覽器對話中下載applet不是網頁使用它們的第一時間顯示就是網頁隨後刷新後顯示Applet在浏覽器對話中不長駐客戶機事實上在大多數場合下這可以作為一種優勢考慮
  
  ● Applet要花很長時間初始化
  
  ● 因為JAVA的class文件是被JAVA虛擬機(Java virtual machine JVM)解釋的字節代碼所以applet運行比本地代碼慢
  
  ● 一個applet只是浏覽器上真正狀態的一部分它不會無縫完好地出現在網頁內容中層疊樣式單(Cascading style sheets CSS)也不會直接影響applet占有的矩形區域
  
  ● Netscape Navigator x有十個活動applet的限制我不知道Internet Explorer +有任何一種這樣的限制
  
  使用Java applets的快速回顧
  
  Java applets通過使用用applet標簽被包含進一個HTML網頁中WC 站點上HTML 說明書的節詳細地說明了這個標記它也提到贊成而不贊成使用這個標記
  
  一個簡單地包含applet的HTML網頁如下所示
  
  
  
  Calculator
  
  
  
  
  
  
  
  上例中用到的屬性解釋如下
  
  Id
  Applet實例的標識符客戶方腳本代碼能知道使用這個id的applet
  
  Width
  這個屬性指定了applet顯示域的初始寬度(不包括applet創建的窗口或者對話框)即使我經成功使用了寬度放棄一節中提到的浏覽器還是推薦使用值作為最小的可能寬度
  
  Height
  這個屬性指定了applet顯示域的初始高度(不包括applet創建的窗口或者對話框)就像用寬度屬性一樣推薦使用值作為最小的可能寬度
  
  Code
  這個屬性指定了任一類文件(包含applet編譯的applet子類或者能夠得到類的路徑包括類文件自身)的名字它在談到applet的codebase時會作出解釋
  
  Codebase
  這個屬性指定applet的基本URI 如果這個屬性沒有指定那麼它默認最近的文檔為同一個基本URI
  
  
  
  只有code width和height 屬性是必須的
  
  Param標記包含一對名字的值它允許applet第一次運行時安裝自己
  
  在上面的applet調用一個方法的JAVASCRIPT函數如下它非常簡單
  
  
  勞動力的分工
  
  在這篇文章的引言部分我暗示當通過JavaScript代碼處理表現形式時高度發展的浏覽器方正處理的一個方法是被壓縮進不知名的Java applets中的這個方法要求在Java和JavaScript間雙向通信下面幾章會研究可用的選項
  
  通過JAVASCRIPT代碼存取Java applet暴露的成員和函數是直截了當的像上一節中的SetCalculatorMode()函數說明的一樣文檔內的applet不是通過使用它的Id / Name就是使用applet收集的索引來查詢
  
  例如
  
  documentCalculatorSetCalculatorMode(Mode);// or documentapplets[]SetCalculatorMode(Mode);
  
  使用netscapejavascriptJSObject類和netscapejavascriptJSException類完成了其它方向(Java to JavaScript)的通信為了找到這些類在什麼位置我在我的硬盤驅動器上尋找所有包含字符串JSObject的文件令我吃驚的是這些文件在許多不同的程序中得到廣泛地使用包括是Visual Interdev工程一部分的庫
  
  如果Netscape Navigat
From:http://tw.wingwit.com/Article/program/Java/JSP/201311/19543.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.