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即可运行它。此时将出现该程序的主窗口,用法很简单,只需选择转换刚创建的文件即可。转换之后原来的文件将被覆盖(可在独立目录下创建原文件备份)。
HTMLConverter使用实例(转)的更多相关文章
- 最近学习工作流 推荐一个activiti 的教程文档
全文地址:http://www.mossle.com/docs/activiti/ Activiti 5.15 用户手册 Table of Contents 1. 简介 协议 下载 源码 必要的软件 ...
- js-静态、原型、实例属性
本篇来说一下js中的属性: 1.静态属性 2.原型属性 3.实例属性 静态属性: function klass(){} var obj=new klass(); klass.count=0; klas ...
- ZIP压缩算法详细分析及解压实例解释
最近自己实现了一个ZIP压缩数据的解压程序,觉得有必要把ZIP压缩格式进行一下详细总结,数据压缩是一门通信原理和计算机科学都会涉及到的学科,在通信原理中,一般称为信源编码,在计算机科学里,一般称为数据 ...
- EntityFramework Core 1.1是如何创建DbContext实例的呢?
前言 上一篇我们简单讲述了在EF Core1.1中如何进行迁移,本文我们来讲讲EF Core1.1中那些不为人知的事,细抠细节,从我做起. 显式创建DbContext实例 通过带OnConfiguri ...
- redis集成到Springmvc中及使用实例
redis是现在主流的缓存工具了,因为使用简单.高效且对服务器要求较小,用于大数据量下的缓存 spring也提供了对redis的支持: org.springframework.data.redis.c ...
- 流程开发Activiti 与SpringMVC整合实例
流程(Activiti) 流程是完成一系列有序动作的概述.每一个节点动作的结果将对后面的具体操作步骤产生影响.信息化系统中流程的功能完全等同于纸上办公的层级审批,尤其在oa系统中各类电子流提现较为明显 ...
- UWP开发之Template10实践:本地文件与照相机文件操作的MVVM实例(图文付原代码)
前面[UWP开发之Mvvmlight实践五:SuspensionManager中断挂起以及复原处理]章节已经提到过Template10,为了认识MvvmLight的区别特做了此实例. 原代码地址:ht ...
- echarts+php+mysql 绘图实例
最近在学习php+mysql,因为之前画图表都是直接在echart的实例demo中修改数据,便想着两相结合练习一下,通过ajax调用后台数据画图表. 我使用的是echart3,相比较第二版,echar ...
- 【HanLP】HanLP中文自然语言处理工具实例演练
HanLP中文自然语言处理工具实例演练 作者:白宁超 2016年11月25日13:45:13 摘要:HanLP是hankcs个人完成一系列模型与算法组成的Java工具包,目标是普及自然语言处理在生产环 ...
随机推荐
- J2EE进阶(十)SSH框架整合常见问题汇总(一)
SSH框架整合常见问题汇总(一) 前言 以下所列问题具有针对性,但是遇到同类型问题时均可按照此思路进行解决. HTTP Status 404 - No result defined for actio ...
- ORACLE--Connect By、Level、Start With的使用(Hierarchical query-层次查询)
查找员工编号为7369的领导: 1 SELECT LEVEL,E.* FROM EMP E CONNECT BY PRIOR E.MGR = E.EMPNO START WITH E.EMPNO = ...
- android dataBinding详解
官方介绍地址:http://developer.android.com/intl/zh-cn/tools/data-binding/guide.html 2015 Google IO 大会带来的 Da ...
- Androd选取相册照片和拍照处理-android学习之旅(62)
实现如下图所示效果 核心代码 -构建打开相册和拍照的Intent 拍照 File outputImage = new File(Environment.getExternalStorageDirect ...
- TCP的定时器系列 — 超时重传定时器
主要内容:TCP定时器概述,超时重传定时器.ER延迟定时器.PTO定时器的实现. 内核版本:3.15.2 我的博客:http://blog.csdn.net/zhangskd Q:一条TCP连接会使用 ...
- 12_Android中HttpClient的应用,doGet,doPost,doHttpClientGet,doHttpClient请求,另外借助第三方框架实现网络连接的应用,
准备条件, 编写一个web项目.编写一个servlet,若用户名为lisi,密码为123,则返回"登录成功",否则"登录失败".项目名为ServerIth ...
- C语言所有作业练习题
2015.08.11 1.计算十进制 42 转换为二进制.八进制.十六进制分别对应的值 2.计算二进制 11010110 对应的十进制值 3.计算八进制 075 对应的十进制值 4.计算十六进制 0x ...
- 【Linux 操作系统】Ubuntu 基础操作 基础命令 热键 man手册使用 关机 重启等命令使用
. : 关机, 如果将Linux默认运行等级设置为0, 系统将无法启动; -- : 多用户模式, 允许使用网络文件系统, 一般不使用图形界面登陆就是这种模式; -- : 多用户图形界面模式, 该模式下 ...
- 再回首UML之下篇
接着我们上篇博客再回首UML之上篇说,在类图中有四种关系,关联.依赖.泛化.实现,接下来,我们来看看依赖,依赖--描述的是一种使用关系,她说明一个事物的规格说明的变化可能影响到他使用的另一个事物,反之 ...
- 【63】关系数据库常用的sql语句总结
创建表 语法 CREATE TABLE <表名>(<列名> <数据类型>[列级完整性约束条件] [,<列名> <数据类型>[列级完整性约束条 ...