【问题标题】:how to share a variable from java code with some javascript functions如何与一些javascript函数共享java代码中的变量
【发布时间】:2011-10-28 22:46:41
【问题描述】:

我有一个场景,我必须使用 XML RPC 调用一些函数。由于我的网络应用程序在 Google App Engine 上,并且 App Engine 不完全支持 Java 的 Apache XML RPC 库,我认为我应该在 java 代码的帮助下存储登录/访问凭据,然后应该选择 javascript 代码获取这些凭据(可能作为会话变量??)并调用必要的调用并获取数据。

上述方案可行吗?如何在 java 和 javascript 代码之间共享一个变量,最好是作为会话变量?

【问题讨论】:

  • 由于您最喜欢的库不受支持而将内容移至客户端可能是一个非常糟糕的主意 - 特别是在凭据以任何方式保密的情况下。

标签: java javascript google-app-engine


【解决方案1】:

是的,这是可能的!

我建议仔细研究这个页面:

http://code.google.com/webtoolkit/doc/latest/DevGuideCodingBasicsJSNI.html#methods-fields

如果您有任何问题,只需使用 JSNI 标签创建一个新问题。

【讨论】:

  • 我知道我想要的是可行的......但是我有一个问题要问你 - 如果我确实在 java 代码中设置了一个变量,然后在我的 javascript 中使用 JSNI 访问它,那么最终用户可以直接或通过 Javascript 控制台/Firebug 等查看变量的值吗?这对我来说非常重要,因为我不希望将登录凭据暴露给最终用户......谢谢......
  • 好吧,因为您的方法对所有 javascript 都是全局可用的,即使在它被混淆之后,有人也很有可能重写一些 java 代码,这需要一些努力,但这是可能的。另一方面,如果您只是对其进行哈希处理并稍后取消哈希处理,则应该没有问题。
  • 即使在 Web 应用程序中也可以访问数据吗?我不会与任何人共享应用程序的代码,它将是谷歌应用程序引擎上的 Web 应用程序,所以我唯一关心的是最终用户是否可以从 javascript 获取 api 凭据(我将使用 JSNI 获取)。 ..java 代码重写应该是不可能的,因为在这种情况下我只在一个 web 应用程序上工作......谢谢
  • 对不起,我实际上是想重写一些javascript代码。所以就像我说的,JSNI 对任何东西都是开放的。因此可以使用新的 javascript 再次调用该方法并对数据进行处理。您需要确保只有您可以使用该方法,或者确保即使有人调用该 jsni 方法,他也不知道如何处理数据(如哈希)。但基本用户实际上不会看到任何变量。
猜你喜欢
  • 1970-01-01
  • 2020-04-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-11-11
  • 1970-01-01
  • 2020-03-19
  • 1970-01-01
相关资源
最近更新 更多