`
wuzijingaip
  • 浏览: 329576 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

ftp client applet

 
阅读更多
ftp client aplet

aplet 没有签名是无法读取本地文件的,选择文件的那个框也弹不出来,要按如下进行操作:

Applet受限于其“沙箱”安全模型,在正常的情况下是不允许其访问磁盘的任何内容的,然而在我们的实际需求中,难免会有需要其可以访问磁盘的情景。
然而如何让Applet摆脱“沙箱”的限制呢?这需要我们通过数字签名来解决这个问题:

首先确保你的机器上注册了jdk环境变量,然后使用keytool -genkey -keystore supermap.store -alias supermap -validity 365 生成一个supermap.store密钥库文件,别名为supermap。
然后就可以进行我们的数字签名操作了,在进行操作之前将你所需的class文件和相关资源文件一起打包成jar文件,通过jar cvf test.jar package1 package2...将所有需要打包的文件一起打包为test.jar(当然也可以通过 eclipse -> File -> export -> jar ....来打包)。

如果你的程序依赖于其他的类库jar文件,而该类库jar文件将可能会对磁盘文件进行访问,那么同样也需要对该jar文件进行数字签名。
使用jarsigner -keystore supermap.store test.jar supermap对jar文件进行签名,在生成密钥库时指定某密码为123456,在此处生成密钥需要输入该密码123456。签名完成便可以进行html文件的编写了。

在html文件中引用applet代码比较简单如下:<applet codebase="." code="com.supermap.test.Test" archive="test.jar,com.supermap.data.jar ... "(此处可添加多个依赖库) width=1024 height-768></applet>,codebase为一个相对路径,用于指明包所在位置,archive指向所有经过数字签名以及不需要签名的jar包和依赖库。

另附:访问随jar包一起发行的媒体数据如图片,需要注意一些细节。比如为某个JButton设置图片:
JButton button = new JButton();
ImageIcon icon = new ImageIcon(getClass().getResource("picName");
button.setIcon(icon);
此处的picName应为相对其class文件的媒体文件相对路径名,如在class文件所在目录下有一个Resources目录用于存放媒体数据,picName为"Resouces/workspace_open.png"。测试通过。

在进行数字签名的时候,注意生成密钥库的目录应该和jar文件所在目录保持一致,即让keytool能找到密钥库文件supermap.store。

导出证书
keytool -export -keystore supermap.store -alias supermap -file test.cer


然后用下面的方式调用:


	public void fileChooseFile(){

	    AccessController.doPrivileged( new PrivilegedAction() {
			public Object run() {
				chooseFile();
				return null;
			}

		});
	}
	public void fireProcessJob(){

	    AccessController.doPrivileged( new PrivilegedAction() {
			public Object run() {
				ProcessJob();
				return null;
			}

		});
	}

	public String local_dir = "c:/";
	JSObject getDirWin = null;
	public void getDirs() {    

		getDirWin = JSObject.getWindow(this);
	    AccessController.doPrivileged( new PrivilegedAction() {
			public Object run() {
				// 访问本地资源
				Properties props=System.getProperties(); //获得系统属性集  
				String osName = props.getProperty("os.name"); //操作系统名称  
				String osArch = props.getProperty("os.arch"); //操作系统构架  
				String osVersion = props.getProperty("os.version"); //操作系统版本  
				String javahome = props.getProperty("java.home"); //操作系统名称  
				
				getDirWin.call("addOneFile", new String[]{ osName +"---" + osVersion + "---" +  javahome } ); //调用 javascript 方法
				File file = new File(local_dir);

				getDirWin.call("addOneFile", new String[]{ "2222222" } ); //调用 javascript 方法
				// 可以指定返回文件列表的过滤条件
				// 这个例子不返回那些以.开头的文件名
				FilenameFilter filter = new FilenameFilter() {
					public boolean accept(File dir, String name) {
						return !name.startsWith(".");
					}
				};

				File[] files = file.listFiles( filter );
				for (int i = 0; i < files.length; i++) {
					getDirWin.call("addOneFile", new String[]{ files[i].getName() } ); //调用 javascript 方法
				}
//				String[] children = file.list(filter);
//				for (int i = 0; i < children.length; i++) {
////					win.call("addOneFile", new String[]{ children[i] } ); //调用 javascript 方法
//				}

				getDirWin.call("addOneFile", new String[]{ "55555555555" } );
				return null;
			}
		});  
	}  





============222222222222=======================

<1>、生成密匙证书(key certificate),该证书将存储在你的.keystore文件中。Validity指的是密匙的有效期,默认是180,但是这里我们需要一年的时间,所以我们设置为365
keytool -genkey -alias FileFtpApplet -validity 365 -keystore FileFtpApplet.keystore
<2>、用我们的密匙来设计我们的APPLET
jarsigner -keystore FileFtpApplet.keystore FileFtpApplet.jar FileFtpApplet
<3>、导出证书
keytool -export -keystore FileFtpApplet.keystore -alias FileFtpApplet -file FileFtpApplet.cer
分享到:
评论
3 楼 ice24 2013-08-13  
     
2 楼 wuzijingaip 2012-12-19  
499700647 写道
你好,看了您的文章《ftp client aplet》很受启发,请教一个问题,在附件中有多个压缩文件,我学习了一下,请问之间的区别是什么?是多种FTP的上传下载方法吗?

最近几个月有点忙,现在才回,几个例子是差不多的,下面的会比之前的完善一点。
1 楼 499700647 2012-09-09  
你好,看了您的文章《ftp client aplet》很受启发,请教一个问题,在附件中有多个压缩文件,我学习了一下,请问之间的区别是什么?是多种FTP的上传下载方法吗?

相关推荐

    ftp_applet2.zip_applet client_applet ftp_ftp appl_ftp applet_ftp

    标题"ftp_applet2.zip_applet client_applet ftp_ftp appl_ftp applet_ftp"暗示了这是一个包含Java Applet实现的FTP客户端程序,可能是一个更新版本,支持大文件(超过2GB)的传输。 描述中提到的“利用Java applet...

    applet ftp client 例子

    将FTP客户端集成到Applet中,允许用户直接在浏览器内与FTP服务器交互,进行上传、下载文件等操作。 在创建一个Applet FTP客户端例子时,你需要掌握以下关键知识点: 1. **Java Applet基础知识**:首先,了解Java ...

    Java Applet FTP上传

    一个Java Applet小程序。提供FTP上传文件(目录),支持拖放本地文件。可配置上传文件的格式等。 测试配置:Tomcat6.0 (IE控件) FTP服务端:TYPSoft FTP Server Client

    Java Applet FTP上传 源码

    以前那个没有上传源码,这个是源码。 一个Java Applet小程序。提供FTP上传文件(目录),支持拖放本地文件。可配置上传文件的格式等。 测试配置:Tomcat6.0 (IE控件) ...FTP服务端:TYPSoft FTP Server Client

    GoToServers Simple FTP Client-开源

    一个非常简单的FTP Java applet客户端,建立在Apache net程序包上。 仅195KB的jar文件。

    java_ftp上传下载

    client.connect("ftp.example.com"); client.login("username", "password"); ``` - **文件上传**: ```java FileInputStream fis = new FileInputStream("path/to/file"); boolean success = client....

    java实现FTP上传下载

    客户端则使用Java Applet技术来实现文件的上传下载。 - **工具选择**:使用J-ftp作为FTP客户端库。 ##### 2. J-ftp基本使用 J-ftp库提供了丰富的API来实现FTP客户端的各种功能,包括文件上传、下载、目录操作等。 ...

    FTP client for Java apps-开源

    用Java语言编写的可编程控制的FTP客户端,它面向需要依靠FTP在网络上交换文件的任何面向网络的独立应用程序,甚至是applet。 应该替换神秘的sun.net.ftp。*类。

    java 文件传输代码

    该Java程序主要分为两部分:客户端(`client`类)与服务器端(`sever`类),实现了一个简单的FTP文件传输功能。通过这两个类,我们可以看到如何在Java中利用Socket编程进行文件的发送与接收。 #### 二、客户端代码...

    Teleport Pro v1.69

    · Server-side image map exploration - translates server-side maps into client-side maps for offline browsing · Full proxy server and firewall support · Domain Dispersed Querying ensures that slow ...

    java开源包1

    public class JVMine extends java.applet.Applet 简单实现!~ 网页表格组件 GWT Advanced Table GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag...

    计算机科学引论试题

    - **文件传输协议(FTP)**:FTP是一种用于在网络上进行文件传输的标准协议。Plug and Play是指即插即用技术;Unicode是一种字符编码标准;ISA是工业标准架构,一种早期的计算机总线标准。 ### 10. 唯一标识数据库...

    chatable-client:Chatable 官方聊天客户端

    考虑到多平台兼容性,Chatable客户端可能采用了Java打包工具,如JAR、WAR或Applet,将应用打包成可执行文件,适应不同的操作系统。如果需要原生应用体验,可能还利用了JavaFX的打包工具或第三方工具(如JLink、...

    Python网络编程

    从数据库服务器到在线游戏,再到Java Servlet、Applet和各种协议的客户端,网络应用程序充斥着市场。数据通信不再是两台机器(无论是在局域网还是互联网上)之间的稀奇现象,而是日常现实。“网络即计算机”,正如...

    java jdk实列宝典 光盘源代码

    telnet客户端,访问系统的telnet服务实质上是与telnet服务建立socket连接,默认的telnet服务的端口是23,TelnetClient.java; UDP编程,包括收发udp报文; 聊天室服务器端,Chatserver.java;聊天室客户端,...

Global site tag (gtag.js) - Google Analytics