APPLET打印的一些总结

项目中使用的是APPLET打印,在实现过程中遇到一些问题,特总结如下。 
首先要将Applet数字签名,授予访问本地资源,读写权限设置 
步骤一:将Applet Class打成Jar包 

Java代码   收藏代码
  1. jar -cvf  MyApplet.jar .  


步骤二:生成证书及签名 
Java代码   收藏代码
  1. 1、keytool -genkey -keystore 7csky.store -alias 7csky  
  这个命令用来产生一个密匙库,执行完毕后应该在当前目录中产生一个7csky.store的文件,这里的7csky是我自己定义的名字,你可以对它进行修改。另外在执行命令的时候还有提示你输入密匙库的密码,这里你一定要记住,否则后面要用的时候无法输入。 

Java代码   收藏代码
  1. 2、keytool -export -keystore 7csky.store -alias 7csky -file 7csky.cert  
   

这个命令用来产生签名时所要用的证书,同样这里的7csky也可以换成你自己需要的名字。这个命令执行完后在当前目录中产生一个7csky.cert的文件。 

 
Java代码   收藏代码
  1. 3、 jarsigner -keystore 7csky.store MyApplet.jar 7csky  
   
这个命令用上面产生的证书将我们的jar文件进行了签名。 


步骤三:新建一个策略文件,并把这些策略文件加入(修改文件) 
      1.新建applet.policy的文件,其内容如下: 
     
Java代码   收藏代码
  1. keystore "http://192.168.200.35/JYDA/security/7csky.store","JKS";  
  2.   
  3. grant signedBy "7csky"{ permission java.io.FilePermission "<<ALL FILES>>""read,write";};  


grant signedBy "7csky"{ permission java.io.FilePermission "<<ALL FILES>>", "read,write";}; 
代表授与当前已经签名的APPLET对文件系统的所有文件读写权限。 

      2、 修改${java.home}/jre/lib/security目录下的java.security,找到下面这两行: 
Java代码   收藏代码
  1. policy.url.1=file:${java.home}/lib/security/java.policy  
  2. licy.url.2=file:${user.home}/.java.policy  

第二行代表当前用户的策略文件。一般都没有。 

  在下面添写第三行 
Java代码   收藏代码
  1. policy.url.3=http://192.168.200.35/JYDA/security/7csky.store    

完成这个修改后我们在前面创建的applet.policy文件才有效。 

另外,在使用APPLET打印时,即使已经对APPLET签名了,有些浏览器还是会弹出有APPLET请求打印机操作的警告框,需要在策略文件中增加如下配置。 

Java代码   收藏代码
  1. permission java.lang.RuntimePermission "queuePrintJob";  
  2. permission java.net.SocketPermission "127.0.0.1:1024""listen,connect";  




注意: 
      在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了。 

另:在html页面中,用javascript调用applet的方法时,同样不能访问客户端本地文件。只有在applet内部才可以访问本地文件。 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值