最近,用Applet 即时显示 网站流量统计.但我知道,先前不作任何的处理Applet是不工作的(应为他要连接数据库).所以我用 policytool 工具生成安全策略,使得Applet能够访问本地资源(并给他所有权限).最终生成一个文件:
ser.policy
------------------------------------------------------------
/* AUTOMATICALLY GENERATED ON Sat May 10 09:25:36 CST 2003*/
/* DO NOT EDIT */
grant codeBase "file:/f:/ytiic/Stat/*" {
permission java.security.AllPermission;
};
-------------------------------------------------------------
然后进行授权:(当然,先编译此类)
Appletviewer -J-Djava.security.policy=c.policy analyse.java
执行完后,出现一个小窗口.代表运行成功.可是却出现了一个问题,
数据库驱动程序,无法加载!!!!!!!
环境变量已经设置好,先前做了一个小程序,已连接成功.......
[ 可是Applet怎么无法加载驱动程序呢???? ]
请高手指点...........
------------------------------------------------------------
原程序:
-----------------
import java.awt.*; import java.applet.*; import java.sql.*; /*
<applet code="analyse" width=300 height=80> </applet>
*/ public class analyse extends Applet implements Runnable { private ResultSet rs=null; private PreparedStatement ps=null; private Statement st=null; private Connection con=null; private Thread t=null; String msg="A Simple Moving Bananer "; boolean stopFlag; public void init() { this.setBackground(Color.ORANGE); //定义背景颜色 this.setForeground(Color.red); //定义前景颜色
try{ Class.forName("dm.jdbc.driver.DmDriver").newInstance(); //加载驱动程序 con=DriverManager.getConnection("jdbc:dm://10.40.14.3","admin","admin");
}catch(Exception e){ msg=e.toString(); destroy(); } } public void paint(Graphics g) //此方法用于显示输出 { try{
st = con.createStatement(); rs=st.executeQuery("select * from tb_language"); if(rs.next()){ g.drawString("ok",50,50); } rs.close(); st.close(); }catch(Exception e){} g.drawString(msg,50,50);
} //当浏览器不访问此页时,stop()方法将被调用 public void stop(){
stopFlag=true; t=null;
} //最后释放所用的资源 public void destroy(){ try{ if(con!=null){ con.close(); con=null; } }catch(SQLException e){} finally{ try{ if(con!=null) con.close(); }catch(SQLException ee){} } } }
|