使用applet读取客户端的IC卡,转载文章然后自己整合了一下,方便以后查阅
 一、压缩你的class类文件为jar包 
 1.假设你的需要压缩的类文件存在的包为:cn.mbq.test1和cn.mbq.test2 
 2.进入你的classes目录(这里是在MyEclipse平台里建一个web项目,类编译后的文件是存放在classes文件夹里的),在DOS窗口中执行命令:jar cf mytest.jar cn.mbq.test1 cn.mbq.test2
 这一步其实可以使用MyEclipse来打成jar包,只选择需要的那些类就可以了。3.执行命令后你会在当前目录中找到mytest.jar文件,这个就是刚才生成的档案文件。你可以修改它的后缀为rar,然后使用winrar压缩程序打开它查看看是否正确。 
 (说明:正确的方法应该是 jar cf mytest.jar cn/mbq/test1 cn/mbq/test2 )二、使用keytool工具生成密匙库 
 1.keytool工具位于${java_home}/bin目录下; 
 2.在DOS窗口中执行命令:keytool -genkey -keystore mytest.store -alias mbq 
 注意:mytest.store 是你的密匙库的名称,可以随意修改,后缀请不要修改! 
 如果需要可以添加参数DOS命令
 keytool -genkey -keystore mytest.store -alias mbq -validity 3650-validity 3650 表示的是有效期是3650天,默认情况是六个月有效期。
 mbq 为别名,这个也可以改成自己的名称 
 3.执行上述命令后,DOS窗口中会提示你输入keystore的密码、你的姓名、组织单位等等信息。这里要注意的是输入密码请记住,后面要用到的。在最后,我们输入y确认信息。然后再直接回车设置mbq的主密码和store密码一致即可!  三、使用keytool工具导出签名时用到的证书 
 1.在DOS窗口中执行命令:keytool -export -keystore mytest.store -alias mbq -file mbq.cert 
 注意:mytest.store 就是第二步生成的密匙库名称 
 mbq 也是在第二步中我们指定的别名 
 mbq.cert 为我们生成的证书的名称,可以自己修改名称,注意后缀不要改 
 2.命令执行成功,我们会在当前目录下找到一个mbq.cert文件,这个就是我们刚才生成的证书。  四、使用jarsigner工具签名jar压缩文档 
 1.jarsigner工具位于${java_home}/bin目录下; 
 2.在当前DOS窗口中执行命令:jarsigner -keystore mytest.store mytest.jar mbq 
 注意:mytest.store 就是我们在第二步中生成的密匙库名称 
 mytest.jar 就是我们这第一步压缩的jar文档 
 mbq 是提供者的名称,我们这里设置为我们的别名 
 修改客户端的程序是需要重新打包和签名。五、创建mytest.policy文件 
 1.在当前目录下创建一个mytest.policy文件,其内容如下: 
 keystore"file:mytest.store","JKS"; 
 grant signedBy"mbq" 
 { 
  permission java.io.FilePermission"<<ALLFILES>>","read"; 
  permission java.net.SocketPermission "localhost:100","connect,resolve";  
 };
 2.在%JAVA_HOME%/jre/lib/security/java.security 中
 policy.url.1=file:${java.home}/lib/security/java.policy
 policy.url.2=file:${user.home}/.java.policy后加上
 file:${path }/mytest.policy   path是mytest.policy的路径如:file:h:/apache-tomcat-6.0.41/webapps/storageCar/view/forkliftLogin/mytest.policy  在jsp使用
 <APPLET name="obj_applet"  code="RfidApplet" CODEBASE="."
         archive="ReadRFID.jar,java+socket++tcp_ip+sdk.jar,commons-codec-1.7.jar"
           WIDTH=0 HEIGHT=0 >
    <param  name="ip1"  value="${ip1}">
    <param  name="port1"  value="${port1 }">
  </APPLET>   
 但是浏览器提示阻止运行,解决办法 打开控制面板 -->  java  -->  安全 -- 编辑站点列表,加入applet使用的url,保存后重启浏览器
 js调用方法
  var result= document.obj_applet.classMethod();查了一些资料说使用object标签会自动在客户端下载jre,用${java_home}/bin/HtmlConverter下的工具自动把applet标签转为object标签,但是我没找到不知道是jdk8取消了还是咋滴。
 现在能在jsp中运行了,但是浏览器会弹出警告解决办法
 六. 找到jre所在的路径,进入${JAVA_HOME}/jre/lib/security目录下 七. 将生成的cert证书复制到${JAVA_HOME}/jre/lib/security目录下
 八. 在${JAVA_HOME}/jre/lib/security目录下执行
  keytool -import -alias hp -keystore cacerts -file hp.cer
  执行这个命令时,会提示输入密码,这个密码是cacerts文件的默认密码:changeit
  
 九. 在Java控制台中可以查看到这个证书  
  安全 -- 管理证书