成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

下一代Java Applet插件技術第一部分

開發 后端
本文是下一代Java Applet插件技術的第一部分,講到了Java applet,執行Applet的新途徑以及配置Applet的相關知識。

Java SE 6對Java桌面應用進行較大的升級,并啟動了Java SE 6 Update N計劃,該計劃旨在簡化JRE的大小,增進用戶的安裝體驗,并提供了一個新的Applet瀏覽器插件,該插件將會隨Java SE 6 Update 10發布。本文全面介紹了這個新插件的關鍵特性,并以NASA的World Wind為例介紹了該插件的應用。

Java Applet回來了!

為了在網絡中傳遞你的程序,是時候再次考慮Java Applet技術了。下一代Java插件技術以一種不同的,比過去更高效、更可靠的途徑來運行Applet。現在你可以獲得如下好處:

增強的可靠性

改進的用戶體驗

在后臺啟動Applet

內建的JNLP支持

針對每個Applet的命令行參數

堆內存大小,Java 2D API加速選項

改進的Java/JavaScript程序設計語言集成

改進的Windows Vista支持

簽名的Applet現在可以在Internet Explorer的保護模式中正常運行

下一代Java插件提供了一種完全重新設計的架構,它將出現在Java SE 6 Update 10中。該插件為運行在網絡瀏覽器中的Applet提供了強大的新功能,它以向后兼容的方式改進了整個Applet的可靠性及功能。

下一代Java插件最有意義的新特性是它內建支持通過JNLP文件啟動Applet。使用JNLP文件格式作為Applet的描述符就能允許Applet馬上復用之前為Java Web Start應用所寫的JNLP擴展。

執行Applet的新途徑

執行Applet的新途徑在結構上與Java Web Start技術相似,但與瀏覽器整合的更為緊密。 Applet不在運行于網絡瀏覽器內的JVM中,而是會啟動一個獨立的JVM進程去運行Applet。默認地,只有一個JVM將被啟動,但你也能啟動多個JVM,并且可以為每個Applet都設置命令行參數,所以你能影響堆內存的大小或其它的要求。

 

Figure 1. Applet Architecture

  Figure 1. Applet Architecture

在上圖中,云表示JVM實例。在瀏覽器內有一個小的,headless JVM被用于管理一個或多個客戶端JVM之間的連接,這些JVM運行著Applet。在該圖中,Duke表示Applet。其中,一個JVM實例運行著兩個Applet,另一個運行著一個Applet。

Applet直接從JNLP文件啟動,它使用的JNLP文件與Java Web Start軟件使用的描述符文件相同,并且允許使用比典型的"archive","code"和"cache_archive"更為強大的參數。

新的插件提供了:

能夠訪問之前僅由Java Web Start軟件專用的高級JNLP擴展。之前有少部分參數能夠使用,但有一些限制,現在這些限制則被去除。

通過Applet訪問JNLP API。

支持PersistenceService和DownloadService。

能夠控制堆內存大小,命令行參數,JRE版本選擇和自動下載。你具有Java Web Start軟件所擁有的相同功能。

現在你就可以在Web頁面中使用像下面這樣的語句了:

  1. <applet width=”500” height=”500”>   
  2.     <param name=”jnlp_href” value=”my_applet.jnlp”>   
  3. </applet>  

調用Applet生命周期方法init,start,stop和destroy會更為確定,并且已經改進了跨瀏覽器行為。完全支持Applet類裝載器緩存,遺留的Applet生命周期及對向后兼容性的需求,并且這些行為都已得到了改進。

Applet運行的就像一個由Java Web Start啟動的應用。參數jnlp_href在Web頁面和Applet的JNLP描述之間起到了橋接的作用。在如寬度與高度這樣的特定方面,Applet標簽與JNLP文件具有重疊的機制。

一般地,你應該使用Deployment Toolkit,這也是一個出現在Java SE 6 Update 10中的新工具,它能自動地為Applet標簽生成HTML。部署建議指南展示了如何使用Deployment Toolkit簡便地發布Applet。

配置Applet:

現在也能更為簡單地在多個方面來配置Applet,包括堆內存大小,需要被使用的Java版本,類加載器緩存,邊界,及其它。
<applet>與JNLP文件在針對某些參數時有重疊的機制。這些沖突可以用如下方法解決:

width and height:這些屬性將總是從<applet>,而不是JNLP文件,中獲取。這是假設瀏覽器知道Applet在Web頁面上應該顯示多大,也只有瀏覽器才能支持相對于頁面的寬度與高度(例如,width="50%")。

codebase:如果JNLP文件在<jnlp>標簽中指定了一個絕對的codebase,那么就使用它。否則,將使用在codebase handling一節中描述的規則進行組織。

code:當指定了jnlp_href參數,Applet的主類名將從main-class參數換成JNLP文件中的applet-desc標簽,并且code屬性會被忽略。注意,該特性允許你為經典Java插件寫一個擁有反饋的Applet標簽,但在新的Java插件中,該標簽可使用更高級的功能。請見下面的"兼容性"一節。

任何一個由<param> 標簽指定的Applet參數將與JNLP文件中指定的參數進行合并。如果<applet>標簽和JNLP文件都指定了同一個參數,<applet>標簽中的版本將覆蓋JNLP文件中的版本,除了參數java_arguments和java_version。

新的java_arguments和java_version參數在JNLP Applet中是不必要的。會替換為通過JNLP文件請求JRE版本或向JVM傳遞參數的機制。所以,命令行參數和JNLP文件請求的JRE版本將會覆蓋HTML中為Applet指定的這些值。

特定的參數,例如image,boxbgcolor等等,在Applet的啟動過程中是有用的。在HTML而不是JNLP文件中指定這些參數可能更好些,以便于在加載Web頁面時就可立即獲取它們,而不用再等到單獨下載JNLP文件之后。

過去,通過Java控制面板設置***堆內存是有限制的。在新的Java插件中,這些限制被取消。現在Applet可以像命令行應用那樣使用大量堆空間。

指定一個比默認值大的堆空間:

  1. <APPLET archive="my_applet.jar" code="MyApplet" width="300" height="300">         
  2.     <PARAM name="java_arguments" value="-Xmx128m">     
  3. </APPLET>  

指定一個非默認大小的堆內存以及一個Java 2D硬件加速器選項,該選項常通過JOGL使用OpenGL應用于Applet。

  1. <APPLET archive="my_applet.jar" code="MyApplet" width="300" height="300">         
  2.     <PARAM name="java_arguments" value="-Xmx256m -Dsun.java2d.noddraw=true">     
  3. </APPLET>  

如果你喜歡,一個Applet可強制進入一個屬于它自己的JVM實例,而與所有其它的Applet隔離開:

  1. <param name=”separate_jvm” value=”true” />  

當把某些桌面應用移植到Web瀏覽器時,這就有用了。

你也能使特定的Applet運行在特定版本的JRE上,如下所示:

  1. <j2se version=”1.4+” >   
  2. <j2se version=”1.5*” >  

當想針對特定版本的JRE,或Applet取代早期版本的選擇機制(如同IE瀏覽器中的CLSID),進行質量測評時,該方法就很有用了。如果請求了一個非常老的JRE版本,就會強制執行限制;如果Applet試圖加載未簽名的代碼,將會提示用戶。

注意,因為支持JNLP的Java插件是在Java SE 6 Update 10中才***出現的,所以指定像“1.4+”這樣的版本基本上沒有意義的。當需要“1.7+”時,這才有意義。

另外,你可以在JNLP文件中使用<update>標簽來顯著降低第二次及接下來各次啟動的時間。

  1. <update check=”background”>  

在這種情況下,將使用緩存中已有的Applet程序,并且在后臺下載該應用的更新版本。在下次啟動時,就會使用新版本。

新的插件也能更好地對圖像進行定制,在Applet被加載之前會展示該圖像。image參數會以支持動畫GIF文件作為目標,Java Plug-in Developers' Guide的Special Attributes一節對此有描述。此外,現也支持如下新的參數:

  boxborder

一個布爾型參數,用于指定在Applet被加載之前是否在Applet區域的邊緣繪制一個寬度一象素的邊框。默認為true。我們建議將該值設置為false,特別是將一個動畫GIF用作加載期圖像時,以避免可能的閃爍。

  centerimage

一個布爾型參數,用于指定是否將加載期圖像在Applet區域內居中顯示,而不是從左上角起始。默認為false。

使用參數boxborder和centerimage的例子:

  1. <APPLET archive="large_archive.jar"   
  2.     code="MyApplet"   
  3.     width="300" height="300">   
  4.     <!-- Use an animated GIF as an indeterminate progress bar   
  5.         while the applet is loading -->   
  6.     <PARAM NAME="image" VALUE="animated_gif.gif">   
  7.     <!-- Turn off the box border for better blending with the   
  8.         surrounding web page -->   
  9.     <PARAM NAME="boxborder" VALUE="false">   
  10.     <!-- Center the image in the applet's area -->   
  11.     <PARAM NAME="centerimage" VALUE="true">   
  12. </APPLET>  

 

【編輯推薦】

  1. 20個開發人員非常有用的Java功能代碼
  2. 走進Java 7中的模塊系統
  3. JavaFX 1.2 已經發布 主要新功能一覽
  4. 2009年十大Java技術解決方案
  5. 2008最值得學習的五種JAVA技術
責任編輯:仲衡 來源: CSDN博客
相關推薦

2009-06-15 13:47:09

Java Applet插件

2019-04-10 11:06:54

前端HTMLCSS

2009-06-11 15:25:39

Java隨機數

2009-06-09 14:40:01

Javascript表單驗證

2009-06-12 10:34:40

Java Date

2025-01-22 08:01:53

2025-04-24 00:10:00

RAGAI人工智能

2009-06-12 10:08:05

StaticJava

2013-07-08 15:45:04

Python

2013-04-08 15:42:38

Backbone.js入門

2009-08-24 17:18:36

下一代網絡三網融合廣電網絡

2013-07-27 21:28:44

2018-11-15 14:52:15

Spark數據機器學習

2011-08-03 10:12:38

2013-09-24 10:07:19

Ruby項目

2013-05-28 13:44:01

Java下一代

2013-05-28 14:02:22

GroovyScala語言

2020-10-10 14:36:10

Python

2013-11-14 16:18:05

AndroidAudioAudioTrack

2011-11-29 10:16:58

HTML 5
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: www97影院 | 精品一区二区电影 | 久久精品欧美一区二区三区麻豆 | 精品一级| 91av视频| 国产在线一级片 | 国产精品久久久久久久一区二区 | 国产日韩欧美在线播放 | 色婷婷一区| 91国内精品久久 | 日韩欧美一级精品久久 | 精区3d动漫一品二品精区 | 中文字幕精品一区二区三区精品 | 自拍视频网站 | 99久久精品一区二区成人 | 中文字幕在线播放第一页 | 日本精品久久久久久久 | 精品亚洲91 | 亚洲第一av | 欧美精品中文字幕久久二区 | 国产精品亚洲一区二区三区在线 | 久久99国产精一区二区三区 | 成人在线视频一区 | 国产欧美在线观看 | 欧美精品一区二区三区四区 在线 | 亚洲黄色av网站 | 国产精品亚洲一区二区三区在线 | 91新视频| 亚洲精品欧美一区二区三区 | 99久久久久| 精品亚洲一区二区三区 | 精品久久久久久18免费网站 | 欧美片网站免费 | 国产精品国产三级国产aⅴ入口 | 国产精品久久久久久吹潮 | 一级毛片免费视频观看 | 亚洲美女在线一区 | 久久久噜噜噜久久中文字幕色伊伊 | 欧美日日 | 成人免费在线播放 | 成人1区 |