【问题标题】:Applet + MS Access小程序 + MS 访问
【发布时间】:2011-07-19 22:23:54
【问题描述】:

这是我的另一个问题的更具体的版本。我创建了一个应该与我的 MS Access 数据库通信的小程序。当我通过编译器运行它时它工作正常,但是当我将 .class 文件嵌入 html 页面并打开 html 页面时,它运行但它应该对数据库进行的任何更改都没有实际发生并且它无法检索来自数据库的数据。我最终会将此 html 文件发布到安全网络。小程序应该直接与计算机上的数据库通信,而不需要 servlet/sockets/etc(尽管这被认为不是好的做法)。如果另一台计算机访问 html 页面,它应该能够运行小程序并更改主机上的数据库,但它不需要允许小程序对其自己的文件进行任何特殊访问,因为它们没有被更改,只有主机上的数据库是。所以我认为没有理由让它成为一个签名的小程序,因为这将使小程序能够对任何计算机进行更改,而不仅仅是它自己的。我运行 Vista,所以策略工具不可用。

注意:html文件、class文件和java源文件都在我电脑的同一个文件夹下,这样就可以了。 html文件尚未发布,我只是自己创建的,用于测试小程序。

【问题讨论】:

标签: java html database ms-access


【解决方案1】:

其实我以前也尝试过这种事情。我认为您的问题在于小程序的性质。

Applet 由客户端计算机下载和运行,因此如果您尝试访问的数据库存在于服务器上,则客户端可能无法访问服务器上的数据库位置。众所周知,来自客户端计算机的代码是不可信的。

将您的页面重写为 servlet 可能更容易,因为 servlet 存在于服务器上并且可能可以访问数据库。然后,您的 servlet 可以在客户端和服务器之间来回发送 html 和接收表单数据。

如果您的心意是在 applet 前端,您可以将 http 消息发送回 servlet,然后由该 servlet 执行数据库操作。这个选项会更加安全,并且更容易实现许可。

希望这会有所帮助,如果您还有其他问题,请告诉我。

【讨论】:

  • 谢谢埃里克。我的心是在一个小程序上,但我也研究了 servlet,因为仅仅修改我的代码结构可能更简单。现在的问题是我试图导入 javax.servlet.*,但 DrJava 声称这个包不存在。另外,我的印象是 servlet 不能作为前端,因为它们没有 GUI。
  • @MrTuesday -1 “我认为您的问题在于小程序的性质。..客户端可能无法访问服务器上的数据库位置。”沙盒小程序可以轻松地“打电话回家”到它自己的服务器(包括到数据库)。您的帖子中有很多错误,以至于“您甚至都没有错”。 “如果您还有其他问题,请告诉我。”请在提供任何其他答案之前了解有关小程序的更多信息。
  • @AndrewThompson:您能否解释一下小程序如何“打电话回家”到它自己的服务器?这基本上是我面临的问题。
  • AJAX 建立在将很多东西保留在客户端并仅在需要时与服务器通信的原则之上。另一方面,Access/Jet/ACE 数据库与实际上适合在 Web 服务器后面使用的数据库引擎类型不同——Access/Jet/ACE 的工作原理是有权访问文件本身,但服务器数据库提供了一个服务器端进程来与数据库进行通信。当然,这一切都可以解决,但是当 Access/Jet/ACE 文件是本地文件时有效的方法在 Web 上无效。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-02-18
  • 2018-03-07
  • 2011-03-09
  • 1970-01-01
相关资源
最近更新 更多