gpt4 book ai didi

java - JApplet通过Eclipse连接本地Mysql,但不能通过Web浏览器连接

转载 作者:行者123 更新时间:2023-11-29 14:33:35 25 4
gpt4 key购买 nike

所以我编写了一个 JApplet,它连接到 MySQL 服务器并使用它执行一些操作。当我在 Eclipse 中测试它时,它工作得很好。我现在将 IP 地址、数据库名称、我正在使用的用户名(root)和密码硬编码到程序中。如果我的 IP 为 localhost,或 127.0.0.1(相同,但是的)或 192.168.x.x(我的 PC 的本地地址),则从 Eclipse 运行的 JApplet 将毫无问题地连接到 MySQL 服务器。另外,如果我打开另一个终端并以这种方式登录 mysql,它也可以工作。

但是,如果我使用 Eclipse jar 项目,将 mysql 驱动程序包含在 HTML applet 标记中并通过同一台计算机上的 Web 浏览器运行它,则不起作用。

这是我正在使用的 HTML 标签:

<applet code="mysqlApp.MysqlInterface.class"
archive="LoginDemo.jar, mysql-connector-java-5.1.18-bin.jar"
height="150" width="450">
Your browser does not support the <code>applet</code> tag.
</applet>

我已在 Firefox 10.* 中尝试过,在路由器上转发端口 3306,并关闭软件防火墙。此外,MySQL 服务器绑定(bind)到 0.0.0.0(它接受所有接口(interface)上的连接尝试)并启用 TCP/IP(不使用跳过网络选项)。我收到一个消息对话框窗口,指出无法建立 sql 连接(我对其进行编程的目的),并且在 Java 控制台中出现以下异常:

SQLException: Communications link failure

The last packet sent successfully to the server was 0 milliseconds ago. The driver
has not received any packets from the server.
SQLState: 08S01
VendorError: 0

我还在 Windows 7 x64 的最新版本的 Internet Explorer 中进行了尝试,当我单击应该将其连接到服务器的按钮时,网页会卡住。

没有任何内容打印到 mysqld 运行的控制台(我使用 mysqld --console 在管理终端上运行它)

有人有什么想法吗?我几天来一直在寻找解决方案,但我发现的所有看似可行的解决方案都有一两个小细节,使其不适用于我的问题。

是的,我知道如果要在生产代码中使用它(主要安全问题),我不应该让小程序直接与数据库通信,但我正处于这样做的早期阶段,并且正在尝试解决这个问题出于测试目的。

谢谢。

最佳答案

您应该让您的小程序通过 ajax 与某些后端(java 或 php)进行通信。然后使用后端与mysql通信。 ajax的好地方是http://prototypejs.org/assets/2010/10/12/prototype.js .

关于java - JApplet通过Eclipse连接本地Mysql,但不能通过Web浏览器连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9550332/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com