JavaCardApplet开发讲义
JavaCardApplet开发讲义
本手册的版权和解释权属于握奇数据系统有限公司
4
4
本手册的版权和解释权属于握奇数据系统有限公司
2
JavaCard Applet开发讲义
握奇数据
JavaCard VM的限制
JavaCard VM规范额外定义了一些程序属性的约束。 Java Card开发者 要注意这些约束。
程序包
一个程序包可以引用128个其他的程序包
在同一个执行上下文中的小应用程序默认情况下能够相
互访问,所以Applet A和Applet B不需要遵循这个程序 来共享对象。
Applet A
①
Applet B
JCRE
②
Applet C
Applet D applet firewall
本手册的版权和解释权属于握奇数据系统有限公司
12
12
本手册的版权和解释权属于握奇数据系统有限公司
Applet A Applet B
Applet C
Applet D applet firewall
JCRE
本手册的版权和解释权属于握奇数据系统有限公司
11
11
握奇数据
Applet的隔离与共享
Java Card平台支持跨防火墙的安全对象共用。典型的 流程如下:
– 请求通过调用系统的JCSystem.getAppletSharea bleInterfaceObject ()方法访问Appletc的共享接
Java Card事务以对beginTransaction()的调用开始,以对 commitTransaction()或者abortTransaction()的调用结束。在事务过 程中所有的写操作都将被保护。JCRE不支持嵌套事务。
java Applet知识要点讲解
第 10 页 2015/12/2 19:03
2.Applet的运行控制
【例8.2】
例5.4创建了一个具有两个按钮的独立 应用程序,现在将这个程序改造成一个 Applet , 并在 Web 浏览器中执行这个 Applet 。在实现这个 Applet 时,覆盖start() 和stop()方法,显示附加文 本。
第 14 页 2015/12/2 19:03
8.2.1 <APPLET>标记属性
ALT = alternateText 如果浏览器支持Applet但不能运行它,就显示 alternateText中所给出的文字;否则就忽略它。 WIDTH = pixels HEIGHT = pixels Applet在浏览器中所显示的高度和宽度(以象素为单位)。 ALIGN = alignment Applet在浏览器中显示时的对齐方式,其含义与效果与图 片在HTML中的一样。其取值有: left, right, top, texttop, middle, absmiddle, baseline, bottom, absbottom。 VSPACE = pixels HSPACE = pixels Applet在浏览器中显示时上下、左右要预留的高度和宽度, 其含义与效果与图片在HTML中的一样。
Java讲义19-Java Applet 介绍
声音处理
Applet类中与声音有关的方法
public void play(URL url) public void play(URL url,String name) public final static AudioClip newAudioClip(URL url) public AudioClip getAudioClip(URL url) public AudioClip getAudioClip(URL url,String name)
使用Applet控制浏览器
得到当前运行页的环境上下文 AppletContext对象 public AppletContext getAppletContext();
使用Applet控制浏览器
AppletContext类的常用方法
显示url指定的Web页 void showDocument(URL url) void showDocument(URL url,String target) void showStatus(String status)
控制其他Applet
import java.awt.*; import java.applet.*; import java.awt.event.*; public class Applet8_Controller extends Applet implements MouseMotionListener{ Applet8 applet8; public void init(){ addMouseMotionListener(this); setBackground(Color.red); } public void mouseMoved(MouseEvent me){ if(applet8==null) applet8=(Applet8)getAppletContext().getApplet("applet8"); applet8.moveLabel(me.getX(), me.getY()); } public void mouseDragged(MouseEvent me){} }
Java 2实用教程(第三版)Java Applet基础、实现与图形与图像 ppt.ppt
12.2网页向Java Applet传值
可以在超文本中使用若干个<Param…>标 志把值传递到Java Applet中,这样就实现 动态地向程序传递信息,不必重新编译程 序,便于程序的维护和使用。
12.3 Java Applet中使用URL
Applet类的 public AppletContext getAppletContext() 方法返回一个AppletContext 对象,称作Java Applet所在的运行环境。在Java Applet程序中可 以使用这个方法返回一个AppletContext 对象,该 对象调用 void showDocument(URL url) 方法完成从嵌入Java Applet的Web页链接另一个 Web页面的工作,程序只需提供URL,其他的工 作将自动完成。
一个Java Applet程序中必须有一个类是Applet类 的子类。称该子类是Java Applet的主类,并且主 类必须修饰为public的。
Java Applet必须由浏览器来运行,因此我们必须 编写一个超文本文件(含有applet标记的web页) 告诉浏览器来运行这个Java Applet。例如:
和链表不同的是, Vector类中的实例方法 都是同步方法.
第14章 图形与图像
14.1 绘制文本
14.2 绘制基本图形
14.3 建立字体
14.4 清除
14.5 Java 2D
14.6 图形的布尔运算
14.7 绘制钟表
14.8 绘制图像
14.9 制作JPG图像
public void addFirst(Object element) 向链表的头添加新节点,该节点中的数 据是参数elememt指定的对象的引用。
Java程序设计教程第9章-Applet简明教程PPT课件
本章学习目标
熟悉Applet技术。 掌握Applet开发步骤。 理解Applet小程序的生命周期。 掌握Graphics类的用法。
Applet概述
Applet技术一出现,互联网立刻焕发出无限的 生机,因为Applet不仅可以生成绚丽多彩的 Web页面、进行良好的人机交互,同时还能处 理图形图像、声音、视频和动画等多媒体数据, 随即它吸引了全世界编程者的目光,Java语言 也正因此火热流行起来,可见Applet在Java的 发展过程中起到不可估量的推动作用。
HTML网页
<HTML> <TITLE>Hello Applet</TITLE> <APPLET CODE="HelloApplet.class" WIDTH=300 HEIGHT=300> </APPLET>
</HTML>
嵌入网页效果
Applet技术解析
பைடு நூலகம்
Applet类是用户编写的applet小程序的 基类,该基类的继承关系如下图所示。
Applet多媒体编程-图形
import java.awt.*; import java.applet.*; public class RectApplet extends Applet { public void paint(Graphics g) { g.drawRect(10,10,60,60); g.fillRect(80,10,60,60); } }
一个简单的例子
import java.awt.*; import java.applet.*; public class HelloApplet extends Applet { public void paint(Graphics g ) { g.drawString("Hello!",10,10); g.drawString("Welcome to Applet Programming!",30,30); } }
Java程序设计课件:Applet小程序
13/35 2023/12/28
Applet类的常用方法
方法名 getAppletInfo() getCodeBase() isActive() play(URL,url) resize(int width, int height) getParameter(String name) showStatus(String msg)
<param name="str" value="良">
</Applet><BR>
<Applet code="eg10_4.class" width=150 height=30>
<param name ="str" value=pplet>
</body>
</html>
2023/12/28
g.drawString(str1 + ":" + score, 10, 25);//输出分数段 } }
10/35 2023/12/28
10.2 Applet类
Applet类为程序员提供了Applet运作的各种 基本方法,Applet类继承自面板类Pannel, Pannel类是Java的抽象窗口工具包AWT中 的主要容器类之一,所以Applet从本质上来 说就是能够嵌入Web页面的一种图形界面的 面板容器。
score = "60~70"; else if (str1.equals("中"))
score = "70~80"; else if (str1.equals("良"))
JavaCard Applet开发调试及测试脚本的编写执行
JCOP开发调试JavaCard程序及测试脚本的编写执行一.JCOP插件的安装第一步在eclipse里安装JCOP的插件,安装过程简述:Help->Software Updates->Find and Install调出安装窗口如下图第二步选择:Search for new features to install,出现如下图的窗口第三步点击new Local Site按钮,打开JCOP插件所在目录,并选中,如下图所示,确定然后一直点下一步下一步就可以了,安装完了二.创建工程通过创建工程向导创建一个JavaCard工程(如,TestApp)。
创建过程如下图Project name填写工程的名字点next选择Java Card API的版本,选择GP版本,点next勾选Create a Java Card application using one of the templates(使用模板创建一个JAVACARD的应用) 选择模板的类型,比如Basic Java Card applet 点next输入Package(包名)和Applet class name(Applet的类名),点next输入Package AID和Applet AID,前5个字节要保持一致。
点Finish,一个JAVACARD的工程就创建完成了代码模板包括一个install方法和process方法,install方法是用来安装applet的,process方法是用来处理apdu指令的下面在模板代码的基础上我们来实现一个取随即数的功能ISO7816规定取随机数的apdu命令是:00 84 00 00 08(04)最后一个字节表示要取的随机数的长度三.写代码实现功能四.编译运行测试程序如下图,选择工程,右键,Run As->Run 打开run对话框如下面两个图所示双击左测的Java Card Application,创建一个与工程同名的运行项目,选中上面的Java Card simulation可以在虚拟仿真环境下运行程序,如果选择下面的Card reader,然后再选读卡器,插入Java卡片,就可以直接把程序下载并安装到java 卡上,并执行,点run,程序开始执行如下图所示, 就可以看到程序下载到仿真环境过程中的字节码,还有applet安装成功后的信息在cmd>命令框里输入/send 00A4040006111111111122 选择applet返回9000再输入/send 0084000008 取随机数返回8个字节的随机数01 F5 B4 11 5B 88 C3 B2 后跟9000表示命令执行成功如下图所示五.DeBug调试程序DeBug调试需要在要调试的程序段下断点,如图所示,双击33行左侧的空位置,就会设上断点,如下图蓝色的小圆点,如果取消断点,只需在小圆点上再次双击一下。
第七讲 Java Applet基础
第七讲Java Applet基础1Java Applet示例Java能迅速热门起来的原因,归功于它的“让Internet动起来”的能力。
具体地说,就是我们能创建一种特殊类型的Java程序,叫做小应用程序或者Java Applet。
它运行在支持Java 的Web浏览器内。
我们来看几个例子(演示)2Applet的优缺点2.1Java Applet的优点可以看到,Java Applet有着得天独厚的优势,包括:无需安装—只要装载了Web页面,页面内的Java 小程序也就同时被装载了,其来源或是服务器或是浏览器的缓冲。
所以Java 小程序是从来不会象一般程序那样进行安装操作的——比方说,ActiveX控件就必须进行安装。
这样就避免了建立/安装客户软件新版本所会遇到的麻烦。
安全性— Java小程序非常安全。
Java小程序很难破坏运行它的系统。
Java Applet采用一种叫做砂箱的机制,措施包括:Java Applet不能运行任何一个本地可执行程序;Java Applet不能读取或者编写本地计算机的文件系统Java Applet找不到与本地计算机有关的任何信息,比如用户明、电子邮件地址等。
还可以签名,允许不同情况下的安全级别。
2.2Java Applet的缺点小程序最大的缺点就是启动速度。
Java小程序的执行速度一直是个大问题。
小程序就像是坦克:活力强大、行动迟缓而笨拙不堪。
页面装载和执行小程序之间存在严重的时间迟滞。
你肯定遇到过这种情况,在你打开一个嵌入了小程序代码的Web页面的时候,有长达5到10秒(甚至还有更长的呢!)的时间迟滞。
这种时间迟滞发生的原因有二:JVM 装载时间—在客户端浏览器运行小程序之前,它首先必须装载Java虚拟机(就是执行Java小程序字节码的解释器)。
取决于客户机的性能和配置,这一过程可能要花费好几秒钟的时间。
幸而,一旦装载了JVM ,它即可在浏览器会话期间一直存在。
下载时间—因为Java小程序不会把自身安装在客户机上,所以他们需要在每次用户访问所在页面的时候被下载(除非它们已经被临时存储在浏览器的缓冲内了)。
Java实用PPT课件第13章JavaApplet
(2) Java Applet的生命周期
一个Java Applet的执行过程称为这个Java Applet的生命周期。一个Java Applet 的 生 命 周 期 会 涉 及 如 下 方 法 的 调 用 执 行init() , start() , stop() , destroy()和paint(Graphics g)。
当浏览器执行like.html,发现有applet标记时,浏览器内置的JVM将创建主 类 Example13_1 的 一 个 对 象 , 它 的 大 小 由 超 文 本 文 件 like.html 中 的 width 和 height来确定。由于Applet类也是Container的间接子类,因此主类的实例也是 一个容器,容器有相应的坐标系统,单位是像素,原点是容器的左上角。该容器 的默认布局是FlowLayout布局,被自动添加到浏览器的桌面上。 ◆浏览器内置的JVM创建了主类Boy对象后,立刻通知这个对象调用init()方法完 成必要的初始化工作。 ◆该对象接着自动调用start()方法。 ◆当浏览器离开Java Applet所在的页面转到其他页面时,主类创建的对象将调 用stop()方法。 ◆当浏览器结束浏览时,主类创建的对象自动执行destroy()方法,结束Java Applet 的生命。 ◆ paint(Graphics g)方法可以使一个Java Applet在容器上显示某些信息,如 文字、色彩、背景或图像等。浏览器的Java运行环境产生一个Graphics类的实例, 并传递给方法paint中的参数g。
like.html文件告诉浏览器运行主类是Example13_1的Java Applet。 网页的最终目的是让其他客户通过网络来访问,下载到客户端
JavaCard应用开发(一)
JavaCard应用开发(一)之前在CSDN博客上看到一个人写的Java Card应用开发的教程,感觉很好,网址如下:/gszhy/article/details/40779949#comments。
有兴趣的可以参考。
这里是我根据自己开发过程中遇到的问题重新整理的,和前面这位同学的内容大体相同,只是个别选项有所区别,这个可能是和自己的编译器有关系吧。
开发环境的搭建有兴趣的可以参考/menghnhhuan/article/details/7616690,这里就不多说啦。
下面来介绍一下如何在搭建好的环境中建立一个正常的工程。
1. 新建一个JavaCard项目。
点击“下一步”。
2. 输入项目名称,一般用小写,点击“下一步”3. 勾选以下两项,点击“下一步”。
4. 在“Create a Jave Card application using one of the templates”前打勾,并选择“Basic Java Card applet”,点击“下一步”。
5. 输入Package的名称和Applet class的名称,点击“下一步”。
注意包的名称小写,类的名称第一个字母一般大写。
6. 设置Package和Applet的AID,设置完成后点击“完成”。
7. 此时包资源管理器中出现了刚刚新建的工程“jcproj”。
9. 左键选中新建的工程,在“项目”中单击“属性”,出现下面的对话框,在对话框中选择“Java 构建路径”那一项,在“Java Card [Custom]”前打勾。
最后点击右下角“确定”。
10. 下面进行调试设置。
点击“debug”(绿色小虫子)右边的倒三角,在下拉菜单中选择“调试配置”。
在调试配置对话框中找到“Java Card Application”选项,在该项上右键单击,选择“新建”,就会发现这个菜单下面多出了一个你刚刚建立的工程名字哦。
然后单击“调试”。
这里需要注意的是,如果一个工程中有不止一个Applet ,那么在此处的“Package Upload选项卡中”需要安装全部的Applet。
java课件教程-Applet课件
Байду номын сангаас写Applet的过程
引入所需的Java API包; 将要显示的applet定义成
java.applet.Applet类的子类; 实现Applet的某些方法; 运行applet
7
将applet嵌入html文件:
<HTML> <HEAD> <TITLE> A Simple Program </TITLE> </HEAD> <BODY> <APPLET CODE="HelloWorld.class" WIDTH=150 HEIGHT=25> </APPLET> </BODY> </HTML>
11
Applet生命周期
Init Start 离开Web页 Stop Destroy 装载Applet
重新装入或改变浏览器大小 或返回Web页
12
Applet的显示
Applet本质上是图形方式。 当Applet每次刷新其显示时,浏览器都调用paint( )方法。 paint()把java.awt.Graphics类的实例作为参数。该实例 包含了Applet所在Panel的图形上下文信息。
13
Applet显示的相关方法
paint(Graphics g )
向Applet中画图、画图象,显示字符串。当Applet初 次显示或更新时,都将调用该方法。 repaint() 调用该方法将通知系统改变显示,系统将调用 update( )方法。 update(Graphics g ) 清除当前的显示并调用paint( )方法。
14
Applet的显示示例
第十二讲 JAVAAPPLET基础
12.1 Java Applet的运行原理 Applet的运行原理
2、<Applet>标记 <Applet>标记
<Applet>标记是 <Applet>标记是HTML标记的一种扩展,用 标记是HTML标记的一种扩展 标记的一种扩展, 于将小程序放置到Web页中 页中, 于将小程序放置到Web页中,并控制其相对于 Web页其他部分的显示效果 Web页其他部分的显示效果。 页其他部分的显示效果。 archive: 小程序运行所需的jar文件。 小程序运行所需的jar文件 文件。 code: 小程序的主类文件名。 小程序的主类文件名。 codebase: 相对于class文件的相对地址或绝对 相对于class文件的相对地址或绝对 URL地址 URL地址,“.”表明class文件与HTML文件位于相 地址, 表明class文件与 文件与HTML文件位于相 同的文件夹中。 同的文件夹中。
<applet code=Example12_1.class height=180 width=300> </applet>
12.1 Java Applet的运行原理 Applet的运行原理
3)Java Applet的主类的对象由浏览器内 Applet的主类的对象由浏览器内 置的JVM负责创建 负责创建。 置的JVM负责创建。 4)浏览器内置的JVM创建了主类的对象后, 浏览器内置的JVM创建了主类的对象后 创建了主类的对象后, 立刻让这个对象调用init()方法 方法。 立刻让这个对象调用init()方法。 5)然后让这个对象调用start()方法。 然后让这个对象调用start()方法 方法。
第12章 Java Applet基础 12章 Applet基础
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Applet A Applet B
Applet C
Applet D applet firewall
JCRE
本手册的版权和解释权属于握奇数据系统有限公司
11
11
握奇数据
Applet的隔离与共享
Java Card平台支持跨防火墙的安全对象共用。典型的 流程如下:
– 请求通过调用系统的JCSystem.getAppletSharea bleInterfaceObject ()方法访问Appletc的共享接
Packages ng javacard.framework javacard.security javacardx.crypto
JavaCard相关规范
– GlobalPlatform Card Specification 2.01
本手册的版权和解释权属于握奇数据系统有限公司
2
2
本手册的版权和解释权属于握奇数据系统有限公司
1
JavaCard Applet开发讲义
JavaCard的基本结构
握奇数据
Applet
Applet
Applet
一个完全合乎要求的程序包名限于255字节以内。 注意字符大小取决于字符 编码。
一个完全合乎要求的程序包名限于255字节以内。
一个类最多可以直接或者间接地实现15个接口。
一个接口最多果包含小应用程序(一个小应用程序程序包),它最多可以有
256个静态方法;如果没有小应用程序(库程序包),它最多只能有255个静
握奇数据
JavaCard API概述
Java Card应用编程接口规范定义了传统的Java程序设计语言应用编程 接口的一个很小的子集--甚至小于J2ME的CLDC。不支持字符串也不支持多 线程。没有象Boolean和Integer这样的包装类,也没有Class和System类。
除Java核心类的小子集以外,Java Card框架还定义了它自己的特定支持 Java Card应用程序的核心类。这些包含在下面的程序包中:
不支持除了Object和Throwable以外的Java核心应用编程接口类和接 口(java.io、ng、java.util),并且Object和Throwable的大部分 方法不可用。
一些Exception和Error子类被省去,因为它们封装的异常和错误不可能 在Java Card平台上出现。
一个执行上下文和另一个执行上下文之间的界限 经常被称为小应用程序防火墙( applet firewall)。它 是Java沙箱安全概念的一个Java Card运行时间改进 本,联合类装入器java.ClassLoader和访问控制器、 java.AccessController的功能。Java Card防火墙创 建了一个虚拟堆,这样一个对象只能访问存在于相同 的防火墙内的(公共的)方法和数据。 一个防火墙可 能包含许多小应用程序及其他对象,比如公共的秘钥 。一个Java Card执行上下文目前作用域是程序包。 当每个对象被创建的时候,它被指派去执行调用程序 的上下文。
4
JavaCard Applet开发讲义
握奇数据
Transient Objects
Transient Objects:是一种特殊的对象,对象头部分存储在EEPROM中,对 象体部分存储在RAM中。
特点: – 在Transient Objects事件发生时,JCRE自动清除对象体部分的数据 。 – 对象体部分存储在RAM中,更新速度更快。 – 写操作不受“事务处理机制”的保护。
Java 智能卡运行环境 JCRE
Java 智能卡应 用管理组件
Java 智能卡类库 Java 智能卡虚拟机
硬件系统相关的本地方法集
智能卡硬件系统
本手册的版权和解释权属于握奇数据系统有限公司
3
3
握奇数据
Java语言的限制
JavaCard支持的Java语言是标准Java语言的一个子集,它不支持下面提 到的语言特性:
口。
③
– 由于Applet A,JCRE通过调用小应用程序的getS hareableInterfaceObject ()方法来要求Applet C
的可共享的接口。
– 如果Applet C允许共用,Applet A将获得一个App let C的共享对象的引用。Applet A现在就可以访 问Applet C了。 Applet A将拥有它创建的任意对 象,即使是那些定义在Applet C的。
6
JavaCard Applet开发讲义
握奇数据
事务处理机制
JCRE支持原子事务,原子事务用于安全地更新一个或多个持久对 象。如果发生掉电或者程序错误等情况,事务将保护数据的完整性。 事务是在系统级支持的,通过下面的方法来完成。
JCSystem.beginTransaction() mitTransaction() JCSystem.abortTransaction()
– Java Card 2.1.1 Runtime Environment Specification – Java Card 2.1.1 Virtual Machine Specification – Java Card 2.1.1 Application Programming Interfaces Specification
Java Card事务以对beginTransaction()的调用开始,以对 commitTransaction()或者abortTransaction()的调用结束。在事务过 程中所有的写操作都将被保护。JCRE不支持嵌套事务。
In TimeCOS, Transaction BufferSize = 240bytes
本手册的版权和解释权属于握奇数据系统有限公司
7
7
JavaCard Applet的运行机制
握奇数据
安装 指令
安装 INSTALL
删除 指令
应用管理组件
选择应用 SELECT
取消选择 DESELECT
JCRE组件
处理命令 PROCESS
JCVM组件
本手册的版权和解释权属于握奇数据系统有限公司
8
8
本手册的版权和解释权属于握奇数据系统有限公司
实例变量balance和TimeLog的更新保证在一个原子操作中完成。 如 果一个程序错误或者电力重置等事件发生,这个事务就会保证前面的 balance和TimeLog的值都将被恢复成初始值。
本手册的版权和解释权属于握奇数据系统有限公司
14
14
本手册的版权和解释权属于握奇数据系统有限公司
7
JavaCard Applet开发讲义
本手册的版权和解释权属于握奇数据系统有限公司
6
6
本手册的版权和解释权属于握奇数据系统有限公司
3
JavaCard Applet开发讲义
JavaCard Applet 的生命期
握奇数据
Applet 的生命周期开始于 Applet 被下载到JavaCard 上。下一步是安装Applet,安装过程包括实例化Applet并 在卡的注册表中注册;终止于 Applet 的实例从卡片上删除 并被从注册表中注销。 Applet 在卡中被安装完成后是处在 可被激活状态的,当卡片接收到“选择”(Select)这个 Applet 的APDU命令 时,Applet 才被激活。激活状态直到保持到 卡片下电、复位或另一个Applet被激活。 Applet在激活状 态下可以接收卡外部发送的APDU命令并执行Applet的 Java Code。
在同一个执行上下文中的小应用程序默认情况下能够相
互访问,所以Applet A和Applet B不需要遵循这个程序 来共享对象。
Applet A
①
Applet B
JCRE
②
Applet C
Applet D applet firewall
本手册的版权和解释权属于握奇数据系统有限公司
12
12
本手册的版权和解释权属于握奇数据系统有限公司
本手册的版权和解释权属于握奇数据系统有限公司
10
10
本手册的版权和解释权属于握奇数据系统有限公司
5
JavaCard Applet开发讲义
握奇数据
Applet的隔离与共享
JavaCard平台是一个安全的多应用环境-许多来 自不同供应商的不同的小应用程序可以在同一张卡片 上安全地共存。每个小应用程序被指派给一个执行上 下文,这个上下文控制到分配给它的对象的访问。
态方法。
一个类最多可以实现128个public或者protected实例方法。
本手册的版权和解释权属于握奇数据系统有限公司
5
5
JavaCard VM 的生命期
握奇数据
JCVM的生命周期与卡片本身的生命周期一致:在卡片 制造并测试之后至发行到持卡人手中的一段时间内它就开始 了生命周期,当卡片丢失或者毁坏的时候它的生命周期也就 结束了。 卡片没有电力的时候JCVM也不会停止,因为它 的状态被保存在卡片的EEPROM中。卡片在预个人化的时 候创建所有的JCRE框架对象,这些在JCVM的整个生命周 期都是运转着的。当卡片没电的时候,保存在RAM中的任 何数据都会丢失,但是保存在EEPROM中的任何状态都被 保留。当再次加电以后,虚拟机又再次激活,这时虚拟机和 对象的状态被恢复,并且重新开始执行等待进一步地输入。
事件类型:
– CLEAR_ON_RESET • 卡片复位
– CLEAR_ON_DESELECT • 选择Applet失败 • 选择另外一个Applet • 重新选择同一个Applet
本手册的版权和解释权属于握奇数据系统有限公司
9
9
握奇数据
Transient Objects
使用方式: – 用于更新次数频繁的数据。 – 用于过程中的,不需要长期保存的数据。例如:会话密钥、应 用状态机等。 – 推荐申请CLEAR_ON_DESELECT类型的Transient Objects 。(便于Applet间共享RAM)