[转]java中为什么使用htmlconverte…
2012-11-05 17:44
113 查看
原文:http://topic.csdn.net/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即可运行它。此时将出现该程序的主窗口,用法很简单,只需选择转换刚创建的文件即可。转换之后原来的文件将被覆盖(可在独立目录下创建原文件备份)。
----
本来,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即可运行它。此时将出现该程序的主窗口,用法很简单,只需选择转换刚创建的文件即可。转换之后原来的文件将被覆盖(可在独立目录下创建原文件备份)。
相关文章推荐
- Java中为什么使用静态代码块
- Java中为什么要使用抽象类
- java中为什么要在try-catch中使用finally
- Java 中,为什么在静态方法中可以调用的方法、可以使用的成员变量必须是静态的?
- EBS中使用JAVA方式发送HTML格式邮件
- Java使用Jacob转换Word为HTML
- JavaWeb那些事儿(一)--为什么做java的web开发使用struts2,springMVC和spring这样的框架
- 为什么做java的web开发我们会使用struts2,springMVC和spring这样的框架?
- Java学习笔记(十三):为什么要使用单例模式
- Java解析HTML之HTMLParser使用与详解
- 在做java 的web开发,为什么要使用框架
- 为什么使用<!DOCTYPE HTML>
- 为什么你要使用java8
- 【JAVA】使用jacob生成的html,关于文字乱码处理,图片无法显示等问题。
- 使用Java获取html中Select,radio多选的值方法
- java-为什么要使用抽象类(第24集)
- 为什么我们要使用html5
- java使用pd4ml将html转换成pdf
- The Java™ Tutorials — Generics :Why Use Generics? 为什么使用泛型
- Java为什么要使用内部类