在applet中访问本地资源
来源:互联网 发布:网络通信的方式 编辑:程序博客网 时间:2024/04/30 15:42
本文为原创,如需转载,请注明作者和出处,谢谢!
applet运行在沙盒中,因此,在默认情况下无法访问本地的资源。但可以通过签名的方式打破这一限制。签名的过程很简单,读者可以按如下的步骤编写一个applet程序,该程序读取了本地C盘的a.txt文件的内容,并显示在applet上,然后压缩成jar文件,并签名后进行发布。
下面使用的keytool和jarsigner都是JDK本身带的程序。
第1步 编写applet程序
第2步: 编译HelloWorld.java,并压缩成hw.jar文件
编译HelloWorld.java后,使用如下的命令生成hw.jar
第3步:使用keytool命令生成密钥库
使用如下的命令生成hw.store文件:
其中hw.store和helloworld是用户自定义的名字,读者可以起其他的名字。
在执行上面的命令后,会要求输出一个密码(输出两次,密码长度至少为6位字符),然后会要求输出一些信息,密码是必须输入的,而其他的信息如果不想输入,直接按回车即可,最后会让你确定是否生成hw.store文件,输入“y”,按回车,又让输出主密码,如果密码与刚才输出的密码相同,直接按回车。执行完命令后,会在当前目录生成一个hw.store文件。这一过程如下图所示。
使用keytool命令生成hw.store文件的默认有效期是180天,也可以使用-validity命令行参数指定有效期,单位为天,如下面的命令指定了有效期为120天:
如果想查看hw.store的有效期和其他信息,可以使用如下的命令:
执行上面的命令后,将输出如下图所示的信息。
上图显示的有效期是120天。
第4步:使用jarsigner命令对hw.jar进行签名
执行如下的命令对hw.jar文件进行签名:
第5步:发布与使用applet
将hw.jar文件放在<Tomcat安装目录>/webapps/test目录中,并在test目录中建立一个applet.jsp文件,代码如下:
在IE地址栏中输出如下的URL:
http://localhost:8080/test/applet.jsp
当第一次访问上面的URL时,会出现如下图所的对话框。
选中对话框中的复选框,单击“运行”按钮,就可以正常运行applet了(下次再访问applet.jsp,就会会弹出这个对话框了),如果是firefox,也会弹出类似的对话框。
要运行这个applet,客户端需要安装jdk1.3或以上版本。
在linux下的firefox中试了一下,发现有时firefox无法正常显示applet。发生这种情况的原因是由于firefox未安装jdk插件,读者可按如下的方法为linux版的firefox安装jdk插件:
jdk插件的库文件是libjavaplugin_oji.so,这个文件在<JDK安装目录>/jre/plugin/i386/ns7目录中,其中ns7根据当前jdk版本不同而有所差异,但前两个字母都为ns。在linux下,jdk一般都安装在/usr/java目录中。
找到libjavaplugin_oji.so文件后,再进行<firefox的安装目录>/plugins目录中,使用如下的命令为libjavaplugin_oji.so文件添加一个符号链接:
重启Firefox,再访问applet.jsp页面,就可以正常显示applet了。
国内最棒的Google Android技术社区(eoeandroid),欢迎访问!
《银河系列原创教程》发布
《Java Web开发速学宝典》出版,欢迎定购
applet运行在沙盒中,因此,在默认情况下无法访问本地的资源。但可以通过签名的方式打破这一限制。签名的过程很简单,读者可以按如下的步骤编写一个applet程序,该程序读取了本地C盘的a.txt文件的内容,并显示在applet上,然后压缩成jar文件,并签名后进行发布。
下面使用的keytool和jarsigner都是JDK本身带的程序。
第1步 编写applet程序
import java.applet.*;
import java.awt.Graphics;
public class HelloWorld extends Applet
{
private String name;
public void paint(Graphics g)
{
g.drawString(name, 20, 30);
}
@Override
public void init()
{
super.init();
try
{
// a.txt文件的内容要以UTF-8格式存储
java.io.FileInputStream fis = new java.io.FileInputStream("c://a.txt");
java.io.InputStreamReader isr = new java.io.InputStreamReader(fis, "UTF-8");
java.io.BufferedReader br = new java.io.BufferedReader(isr);
name = br.readLine();
}
catch (Exception e)
{
name = e.getMessage();
}
}
}
import java.awt.Graphics;
public class HelloWorld extends Applet
{
private String name;
public void paint(Graphics g)
{
g.drawString(name, 20, 30);
}
@Override
public void init()
{
super.init();
try
{
// a.txt文件的内容要以UTF-8格式存储
java.io.FileInputStream fis = new java.io.FileInputStream("c://a.txt");
java.io.InputStreamReader isr = new java.io.InputStreamReader(fis, "UTF-8");
java.io.BufferedReader br = new java.io.BufferedReader(isr);
name = br.readLine();
}
catch (Exception e)
{
name = e.getMessage();
}
}
}
第2步: 编译HelloWorld.java,并压缩成hw.jar文件
编译HelloWorld.java后,使用如下的命令生成hw.jar
jar cvf hw.jar HelloWorld.class
第3步:使用keytool命令生成密钥库
使用如下的命令生成hw.store文件:
keytool -genkey -keystore hw.store -alias helloworld
其中hw.store和helloworld是用户自定义的名字,读者可以起其他的名字。
在执行上面的命令后,会要求输出一个密码(输出两次,密码长度至少为6位字符),然后会要求输出一些信息,密码是必须输入的,而其他的信息如果不想输入,直接按回车即可,最后会让你确定是否生成hw.store文件,输入“y”,按回车,又让输出主密码,如果密码与刚才输出的密码相同,直接按回车。执行完命令后,会在当前目录生成一个hw.store文件。这一过程如下图所示。
使用keytool命令生成hw.store文件的默认有效期是180天,也可以使用-validity命令行参数指定有效期,单位为天,如下面的命令指定了有效期为120天:
keytool -genkey -keystore hw.store -alias helloworld -validity 120
如果想查看hw.store的有效期和其他信息,可以使用如下的命令:
keytool -list -v -alias helloworld -keystore hw.store
执行上面的命令后,将输出如下图所示的信息。
上图显示的有效期是120天。
第4步:使用jarsigner命令对hw.jar进行签名
执行如下的命令对hw.jar文件进行签名:
jarsigner -keystore hw.store hw.jar helloworld
第5步:发布与使用applet
将hw.jar文件放在<Tomcat安装目录>/webapps/test目录中,并在test目录中建立一个applet.jsp文件,代码如下:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<html>
<head>
<title>第一个applet</title>
</head>
<body>
<APPLET CODE="HelloWorld.class" width=200 height=200 ARCHIVE="hw.jar">
</APPLET>
</body>
</html>
pageEncoding="UTF-8"%>
<html>
<head>
<title>第一个applet</title>
</head>
<body>
<APPLET CODE="HelloWorld.class" width=200 height=200 ARCHIVE="hw.jar">
</APPLET>
</body>
</html>
在IE地址栏中输出如下的URL:
http://localhost:8080/test/applet.jsp
当第一次访问上面的URL时,会出现如下图所的对话框。
选中对话框中的复选框,单击“运行”按钮,就可以正常运行applet了(下次再访问applet.jsp,就会会弹出这个对话框了),如果是firefox,也会弹出类似的对话框。
要运行这个applet,客户端需要安装jdk1.3或以上版本。
在linux下的firefox中试了一下,发现有时firefox无法正常显示applet。发生这种情况的原因是由于firefox未安装jdk插件,读者可按如下的方法为linux版的firefox安装jdk插件:
jdk插件的库文件是libjavaplugin_oji.so,这个文件在<JDK安装目录>/jre/plugin/i386/ns7目录中,其中ns7根据当前jdk版本不同而有所差异,但前两个字母都为ns。在linux下,jdk一般都安装在/usr/java目录中。
找到libjavaplugin_oji.so文件后,再进行<firefox的安装目录>/plugins目录中,使用如下的命令为libjavaplugin_oji.so文件添加一个符号链接:
ln -s <jdk安装目录>/jre/plugin/i386/ns7/libjavaplugin_oji.so
重启Firefox,再访问applet.jsp页面,就可以正常显示applet了。
国内最棒的Google Android技术社区(eoeandroid),欢迎访问!
《银河系列原创教程》发布
《Java Web开发速学宝典》出版,欢迎定购
- 在applet中访问本地资源
- 在applet中访问本地资源
- applet访问本地资源
- 使applet能够访问本地资源
- Applet数字签名,授予访问本地资源 .
- Applet数字签名,授予访问本地资源
- applet通过数字签名访问本地资源
- Applet做数字签名,授予访问本地资源
- Applet做数字签名,授予访问本地资源
- Applet数字签名,授予访问本地资源
- Applet数字签名,授予访问本地资源
- Applet数字签名,授予访问本地资源
- 使applet能够访问本地资源
- Applet 签名 访问系统本地资源
- Applet数字签名,授予访问本地资源
- Applet数字签名,授予访问本地资源
- Applet数字签名,授予访问本地资源的方法
- 关于Applet做数字签名,授予访问本地资源
- Struts 2杂谈(1):ValueStack对象的传送带机制
- fedora10 硬盘安装
- Weblogic10 + EJB3入门教程(1):编写第一个无状态会话Bean(Stateless Session Bean)
- Struts1.x系列教程(9):上传任意多个文件
- 成功感言
- 在applet中访问本地资源
- Struts2.1.6测试小记
- SQL Server2005杂谈(3):四个排名函数(row_number、rank、dense_rank和ntile)的比较
- WebService大讲堂之Axis2(6):跨服务会话(Session)管理
- Struts1.x系列教程(8):上传单个文件
- SQL Server2005杂谈(2):公用表表达式(CTE)的递归调用
- SQL Server2005杂谈(1):使用公用表表达式(CTE)简化嵌套SQL
- 跳出多层循环的简单方法(Java版)
- 使用wxWidgets进行跨平台的C++开发