首页 理论教育 使用Applet编写文件管理界面

使用Applet编写文件管理界面

时间:2023-11-20 理论教育 版权反馈
【摘要】:但可以使用GAE管理用户信息。解决之道就是使用Java Applet。JavaApplet是用Java语言编写的一些小应用程序,它们可以直接嵌入到网页中,并由用户下载到本地执行。包含Applet的网页被称为Java-Powered页,可以称其为Java支持的网页。我们使用Java Applet与swing工具包,开发一个上传文件的程序。图5-10 在浏览器中加载Applet加载Applet后,将可以看到如图5-11所示的页面。Java Applet有安全限制。因此需要更改安全策略,使Applet可以访问本地文件系统。

使用Applet编写文件管理界面

现在的情况是,通过GAE无法访问远程的AWSS3文件系统。但可以使用GAE管理用户信息。

其原因是GAE的安全策略不允许我们使用java.net工具包去访问远程服务。

能不能使用GAE的网址抓取服务访问远程服务?

虽然GAE的网址抓取服务也提供Http服务编程接口,但AWSS3的编程接口却无法更改,故该方案行不通。

因此必须使用一个不能在GAE运行的程序库才能满足我们的需求。

解决之道就是使用Java Applet。

JavaApplet是用Java语言编写的一些小应用程序,它们可以直接嵌入到网页中,并由用户下载到本地执行。包含Applet的网页被称为Java-Powered页,可以称其为Java支持的网页。当用户访问这样的网页时,Applet就被下载到用户计算机上执行,但前提是用户使用的是支持Java的网络浏览器。由于Applet是在用户计算机上执行的,因此它可以执行我们所需要的java.net工具包。

我们使用Java Applet与swing工具包,开发一个上传文件的程序。Applet代码如代码清单5-34所示,详细代码请读者参考Sample5\Applet。

【代码清单5-34】

978-7-111-36687-4-Chapter05-62.jpg

将Applet打包放入war\applet\FileChooserApplet.jar,修改FileManageMent.jsp文件,如代码清单5-35所示。

【代码清单5-35】

978-7-111-36687-4-Chapter05-63.jpg

978-7-111-36687-4-Chapter05-64.jpg

运行GAEFileSharingSystem,详细代码请读者参考Sample5\GAEFileSharingSystem。

由于用到的Jar包较多,所以浏览器需要一段时间加载,如图5-10所示。

978-7-111-36687-4-Chapter05-65.jpg

图5-10 在浏览器中加载Applet

加载Applet后,将可以看到如图5-11所示的页面。

978-7-111-36687-4-Chapter05-66.jpg

图5-11 文件管理页面

该页面分为上中下三个部分,上部为文件上传及选择按钮,中部为文件选择日志,下部为用户文件列表。

但当用户单击“选择文件”按钮时,没有任何反应。Java Applet有安全限制。其默认策略不允许Applet访问本地文件系统。因此需要更改安全策略,使Applet可以访问本地文件系统。

(1)使用keytool工具生成密匙库

keytool工具位于${java_home}/bin目录下。

在DOS窗口中执行命令:keytool-genkey-keystoreskatercloud.store-aliasskatercloud。

注意:skatercloud.store是用户的密匙库名称,可以随意修改,但请不要修改后缀。skatercloud为别名,这个也可以改成用户自己的名称。

执行上述命令后,DOS窗口中会提示用户输入keystore的密码、用户姓名、组织单位等信息。这里要注意的是记住输入密码,后面要用到。输入y进行确认。然后再按〈Enter〉键将fhx的主密码和store密码设置成一致即可。(www.xing528.com)

(2)使用keytool工具导出签名时用到的证书

在DOS窗口中执行命令:keytool-export-keystore skatercloud.store-alias skatercloud-file skatercloud.cert

D:\GAEFileSharingSystem\war\applet>keytool-export-keystore skatercloud.store-alias skatercloud-file skatercloud.cert

输入keystore密码,并保存在认证文件skatercloud.cert中。

注意:skatercloud.store就是第(1)步生成的密匙库名称,skatercloud也是在第(1)步中指定的别名,skatercloud.cert为生成的证书的名称,用户可以自己修改名称,但不要改后缀。命令执行成功,用户会在当前目录下找到一个文件skatercloud.cert,这就是刚才生成的证书。

(3)使用jarsigner工具签名jar压缩文档

jarsigner工具位于${java_home}/bin目录下。

在DOS窗口中执行命令:jarsigner-keystore skatercloud.store FileChooserApplet.jar skater-cloud

D:\GAEFileSharingSystem\war\applet>jarsigner-keystoreskatercloud.store FileChoos-erApplet.jar skatercloud

输入密钥库的口令短语:×××××。

警告:签名者证书将在六个月后过期。

注意:skatercloud.store就是第(1)步中生成的密匙库名称。

FileChooserApplet.jar就是appletjar文档。

skatercloud是提供者的名称,这里可设置为别名。

(4)部署

在应用程序的附属目录下创建一个skatercloud.policy文件,其内容如代码清单5-36所示。

【代码清单5-36】

978-7-111-36687-4-Chapter05-67.jpg

同时每个客户端需要修改一下各自${java.home}/jre/lib/security目录下的java.security文件,如代码清单5-37所示。

【代码清单5-37】

978-7-111-36687-4-Chapter05-68.jpg

运行时,会弹出“警告-安全”对话框,询问是否信任该网站,如图5-12所示。

978-7-111-36687-4-Chapter05-69.jpg

图5-12 “警告-安全”对话框

现在,用户便可以选择文件并将其上传到S3文件系统中了,如图5-13所示。

978-7-111-36687-4-Chapter05-70.jpg

图5-13 上传文件到S3系统

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈