[转]java中为什么使用htmlconverte…

原文:http://topic.youkuaiyun.com/t/20021114/10/1175392.html
----   本来,Applet的概念相当简单——只要在Web页面中加入一个 <   APPLET   > 标记就可以了。浏览器一遇到这个标记,就会下载对应的   Applet类文件,并启动自己的解释器运行这个Applet。在此过程中浏览器担当相当重要的角色,特别是它必需具备运行Java的能力,同时浏览器的虚拟机也决定了可接受的Java代码版本。   

----   运用Java插件的基本目标是将显示Web页面和运行Java   Applet这两个任务分离,浏览器的主要任务是负责各种页面部件(如图片、文本、Applet等)的布局。这种机制Navigator和IE都早就具备,Netscape称之为浏览器插件。   

----   所谓的插件就是一个能够负责特定页面区域的代码模块。假设某个页面中含QuickTime电影片断,浏览器只需要知道它应该保留的大小,然后就可以将它象图片或其它页面元素一样安排了,页面中该区域的显示则由QuickTime插件代码负责。   

----   可以将Applet与电影片断同等看待。此时浏览器只需要知道Applet的显示区域大小,就可以像对待其它页面元素一样对待Applet了。而运行Applet的任务则由Java   插件负责。   

----   在IE中又怎么办呢?IE中的ActiveX也具有完全相似特性:浏览器将页面中某个区域的控制权交给其它代码负责。虽然Netscape叫它插件,Microsoft叫它ActiveX控件,两者名字大不相同,但它们都能够让Web浏览器运行真正的Java   2代码。   

----   这种方法最大的好处在于,它能够让IE和Navigator使用Sun的Java运行时环境,而不再依赖于浏览器来获得Java支持,更不必关注浏览器支持什么Java版本了。   

----   但这种方法也存在缺点,主要有以下两个方面:首先,这种运行Applet的方式需要下载和安装Java   插件;其次,一个简单的 <   APPLET   > 标记已经不再足够,用插件运行Applet的Web页面需要更多的HTML代码。   

----   对于第一个问题,既可以从Sun站点(http://java.sun.com/products/plugin/index.html)事先下载和安装插件软件包,如果有Internet连接,也可以让浏览器在遇到 <   EMBED   >   或 <   OBJECT   >   标记时自动下载。   

----   标记不同问题稍微复杂一点。虽然Netscape的插件机制和Microsoft的ActiveX技术是非常相似的东西,但在Web页面中调用它们的方法却是完全不同的。Navigator用 <   EMBED   > 标记引入插件,IE中起类似功能的标记叫 <   OBJECT   > 。   

----   如果你熟悉HTML且需要引用Java   2   Applet的页面不多,可以手工将 <   EMBED   > 标记嵌入到 <   OBJECT   > 标记对内部,使得页面在两个浏览器下都可以正常显示。假设要运行的是TestApplet,则通过Java插件运行Applet的HTML代码类如(也就是说,用下面这些代码取代原来的 <   APPLET   > 标记):   

<   OBJECT   classid=xxx 
WIDTH   =   350   HEIGHT   =   150   
  codebase= "http://java.sun.com/products/plugin 
/1.2/jinstall-12-win32.cab#Version=1,2,0,0 "  
<   PARAM   NAME   =   CODE   VALUE   =   TestApplet    
<   PARAM   NAME= "type "   VALUE= "application/ 
x-java-applet;version=1.2 "  
<   COMMENT  
<   EMBED   type= "application/x-java-applet;version=1.2 " 
  java_CODE   =   TestApplet   WIDTH  
  350   HEIGHT   =   150       
pluginspage= "http://java.sun.com/products/plugin/ 
1.2/plugin-install.html "   > <   NOEMBED   > <   /COMMENT  

<   /NOEMBED   > <   /EMBED  
<   /OBJECT  

----   更方便的方法是利用Sun提供的HTML   Converter工具,它可以实现 <   Applet   > 标记到上述标记的自动转换。如果页面数量较多,使用这个工具尤为值得。HTML   Converter可在以下地址下载:   

----   http://java.sun.com/products/plugin/1.2/converter.html   

----   2.具体过程示例   

----   下面我们通过实例来说明整个过程。假设有下面这个Applet,它用到了Swing,因而需要Java   2支持:   

import   java.awt.*; 
public   class   TestApplet   extends   javax.swing.JApplet  
    private   Font   mFont   =   new   Font( "Serif ",   Font.PLAIN,   64); 
    
    public   void   paint(Graphics   g)  
        Graphics2D   g2   =   (Graphics2D)g; 
g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, 
RenderingHints.VALUE_ANTIALIAS_ON); 
g2.setPaint(new   GradientPaint(0,   0,   Color.green, 
20,   10,   Color.blue,   true)); 
Dimension   d   =   getSize(); 
g2.fillRect(0,   0,   d.width,   d.height); 
        g2.setPaint(Color.red); 
        g2.setFont(mFont); 
        g2.drawString( "ABCDEFG ",   20,   84); 
   



----   下面这个HTML页面使用 <   APPLET   > 标记引入TestApplet。在浏览器中该Applet是无法运行的,如果你愿意的话,可以用AppletViewer观察它的运行效果:   

<   html  
<   head  
<   /head  
<   body  
    <   applet   code=TestApplet   width   =   350   
height   =   150   > <   /applet  
<   /body  
<   /html  

----   接下来工作就是用HTML   Converter将 <   Applet   > 标记转换为调用Java   插件的 <   EMBED   > 和 <   OBJECT   > 标记了。在下载和安装这个工具之后,输入命令   java   HTMLConverter即可运行它。此时将出现该程序的主窗口,用法很简单,只需选择转换刚创建的文件即可。转换之后原来的文件将被覆盖(可在独立目录下创建原文件备份)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值