客户端计算机上的Applet JDBC连接失败

时间:2013-07-16 11:33:12

标签: java mysql database jdbc applet

我的自签名小程序完美适用于applet查看器和我的本地Web浏览器。但是,当我根据网站服务器上的mysql数据库的db名称,用户名和密码更改连接字符串并通过ftp将项目上传到服务器时,applet无法连接到数据库。小程序代码是:

public void init() {
JPanel panel = new JPanel();
panel.add( new JLabel("Start"));
revalidate();
// TODO start asynchronous download of heavy resources
String driver = "com.mysql.jdbc.Driver";
String url = "jdbc:mysql://www.mywebiste.com:3306/database";
String user = "user";
String password = "password";


try {
    Class.forName(driver);                        
    Connection con = DriverManager.getConnection(url,user,password);

    String sql4 = "Select * from form where Il='Ankara'";

                    //System.out.println(password + " " + userName);
               Statement  stmt = con.createStatement();
              ResultSet rs = stmt.executeQuery(sql4);
    panel.add( new JLabel("Connection"));
    revalidate();
}
catch(Exception e) {
    panel.add( new JLabel("Not Connected"));
    revalidate();
}

Container content = getContentPane();
             content.setLayout(new GridBagLayout()); 
             content.add(panel);

}

1 个答案:

答案 0 :(得分:1)

你是同源政策的受害者。

通过签署applet可以解决这个问题,但我强烈建议不要打扰。由于Java中最近涉及Applet和JNLP的所有安全问题,这项技术与渡渡鸟一样死亡。越来越多的系统默认禁用Java applet,更多的用户自己(或他们的IT部门)禁用它。

最好在服务器上的webapp中使用一些轻量级REST服务,在浏览器上使用一些javascript(或者如果你真的坚持使用applet),这些服务通过http使用这些服务。然后,您也不需要将数据库公开给网络。

即使对于内部应用程序,我也会认真考虑它(或者回过头来询问谁)。