【问题标题】:Pass data between GWT and PHP在 GWT 和 PHP 之间传递数据
【发布时间】:2012-05-21 20:22:30
【问题描述】:

我是 GWT 和 PHP 的新手,在阅读了一些教程后,我不清楚如何在 GWT 前端和 PHP 后端之间有效地交换数据。我成功地遵循了建议使用 RequestBuilder 类从 PHP 获取数据的 Google 教程。 但是当我需要保存在 GWT 中完成的工作时,如何高效地将数据传递给 PHP? 我不清楚如何使用 RequestBuilder 来完成这项任务。 我现在找到的解决方案是

RequestBuilder builder = new RequestBuilder(RequestBuilder.POST, URL.encode(url));
    builder.setHeader("Content-Type", "application/json");
        try {
              Request request = builder.sendRequest("{\"done\":false,\"description\":\"Some text\",\"priority\":0}", new RequestCallback() {...

在 PHP 方面

$arr = json_decode(file_get_contents("php://input"),true);
$done = (int)$arr['done'];
$description = $arr['description'];
$priority = $arr['priority'];
mysql_query("INSERT INTO Tasks (done, description, priority)
    VALUES ($done, '$description', $priority)");

这是最好的方法吗?有人在网上找到了一个可行的例子吗?欢迎提出任何意见...

【问题讨论】:

  • 不要将来自客户端的字符串插入这样的数据库中。使用prepared statements 或类似的东西。

标签: php json gwt


【解决方案1】:

我认为,在与非 Java 服务器交互时使用 JSON 是可以的。您可以使用 JSON 模块以更安全的方式在客户端构建 JSON 字符串:

在您的 .gwt.xml 文件中添加

<inherits name='com.google.gwt.json.JSON'/>

然后你可以像这样构造你的示例字符串

final JSONObject jsonObject = new JSONObject();

jsonObject.put("done", JSONBoolean.getInstance(false));
jsonObject.put("description", new JSONString("Some text"));
jsonObject.put("priority", new JSONNumber(0));

final String jsonString = jsonObject.toString();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-24
    • 1970-01-01
    • 1970-01-01
    • 2012-02-10
    • 2016-03-24
    相关资源
    最近更新 更多