gpt4 book ai didi

java - 没有 RPC 的 GWT 数据库访问

转载 作者:行者123 更新时间:2023-11-29 04:12:28 25 4
gpt4 key购买 nike

我正在将 GWT 用于 Web 应用程序,我需要访问 mySql 数据库。只有一个客户端(该应用程序在 iPad localy 上使用)。有什么方法可以不使用 RPC 来访问数据库吗?我正在寻找直接查询数据库的可能性。

谢谢!

最佳答案

不能使用gwt直接访问MySQL的原因有2.5个。

原因#1。GWT 被编译成 Javascript。您需要打开一个到数据库服务器的套接字。 GWT 不允许您打开套接字。事实上,没有任何未增强的浏览器(在 html5 出现之前)能够打开套接字。但是您可以使用 Flash actionscript 或 HTML 5 javascript 打开套接字。

原因#2。好的,假设您使用了 HTML5 套接字。你花了 6 个月的时间用 Javascript 编写了一个 JDBC 连接。但是,您的 websocket 仍然需要在服务器上寻址一个 servlet,这将帮助您的 websocket 建立持久连接——而 mysql 无法执行这样的建立。

原因#3。SLD - SOP 限制:(二级域名同源政策)标准浏览器将其页面限制为只能请求和包含来自与向浏览器提供该页面的服务器相同的二级域 (SLD) 中的内容。顶级域名(以及顶级半域名)例如 .com、.org、.net、.me.us 或 .co.uk。因此,google.com、fbi.gov、mit.edu 等域名是二级域名。而 mail.google.com 将是一个三级域。因此,GWT 只能在 SLD 的范围内工作。您的 Web 服务器也必须可以在与 mysql 服务器相同的 SLD 上访问。

SLD-SOP 和隧道要求是为了关闭一个安全漏洞,该漏洞可能允许任何 tom-rick-or-mary 通过您的浏览器登录到您的系统。浏览器连接到除 http 服务器以外的服务器始终需要隧道。隧道是指浏览器利用 Web 服务器作为 yenta(意为忙碌的 body /中间人/媒人的意第绪语)到达另一台服务器。

您别无选择,只能使用 GWT-RPC。也许您不想使用 RPC,那么您可以使用 RequestBuilder、Script-Include 或 RequestFactory。但它们仍然是多种多样的隧道方式。 http://h2g2java.blessedgeek.com/2011/06/gwt-requestbuilder-vs-rpc-vs-script.html .

可以从 gwt 客户端连接到数据库服务器的原因之一是:您的数据库服务器必须运行 httpd 连接引擎。也就是说,您的 gwt 应用程序将通过 http 访问数据库服务器。我不熟悉哪个关系数据库具有可用的 http 访问权限。很可能,您必须通过 xml 或 json 进行查询。

但是,我曾供职的一家公司创建了我们自己的 http 服务以允许“直接”客户端访问。 “直接”用词不当,因为我们使用的是 tomcat。它仍在隧道中。任何提供“直接”http 访问的数据库公司仍在使用隧道技术。隧道 - 无法逃脱。

您可以使用 Flash 增强浏览器并编写 Flash 应用程序,而不是使用 GWT。如果直接访问对您来说如此重要,您将不得不放弃 GWT 并在 Flash 中进行开发并为您的数据库服务器运行一个 httpd 引擎。

关于java - 没有 RPC 的 GWT 数据库访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6575501/

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