js 动态调用 applet 内的方法
js 动态调用 applet 内的方法
js 动态调用 applet 内的方法示例程序下载链接
js、applet(java) 都是客户端脚本语言,在客户端与用户进行着一些信息交互。然而它们并不是独立的,它们也可以协作工作,互相调用来完成一些复杂的客户端操作。本文从一个项目实战例子,演示了如何使用 js 动态调用 applet 内封装的各种方法。
本文仅贴出了 FileApplet 中被调用的方法,因为 FileUploadApplet extends FileApplet,所以这些方法(public)被直接继承。
addFileInfomation 是 js 向 applet 传递一些服务器提供的文件信息,诸如文件名(含完整的路径信息)、文件格式、文件内容语言、操作系统…
directoryValid 是 js 调用 applet 方法,对一系列的文件路径进行验证,applet 把有效的(即本地确实存在此文件)文件路径进行返回。
本文仅演示 js 调用 applet 的 directoryValid 方法对文件路径进行验证的例子,addFileInfomation 方法的例子、directoryValid 被调用的完整例子都可以去示例程序下载链接进行下载。
步骤一:
编写并编译 applet 程序,然后打包并进行数字签名后把 jar 包放在项目中的自定义目录 common 下。详细过程可以参考作者的博客《一次 applet 客户端打印 jasperreport 报表任务笔记》,这里不再赘述。
步骤二:
jsp 中编写 java 脚本,提供 addApplet 方法,以备服务器添加客户端的 applet 应用:
步骤三:
jsp 中编写 java 脚本,调用 addApplet 方法添加客户端 applet 服务:
步骤四:
js 中编写 getApplet 方法,获取 applet 对象:
步骤五:
js 中对 applet 中封装的方法的调用:
注:applet 中 directoryValid 返回的是 String 对象,弱类型语言的 js 得到这个对象时会进行自动转换。applet 中要被 js 调用的方法一定是为 public 权限。其它权限的诸如 private、default、protected 方法应该不能够被 js 调用。作者没有去尝试,如果读者有兴趣的话可以亲自动手去测试一下,如果成功的话,记得也告诉我一下哈:)
技术交流:defonds#163.com(#=@)。