在服务器端将GWT与Java以外的东西一起使用(im)有多实际?

在服务器端将GWT与Java以外的东西一起使用(im)有多实际?,gwt,Gwt,对于web应用程序开发,我一直沉浸在Ruby、PHP和Python等动态语言中。使用这些语言的流行框架,我所有关于HTML、CSS和JavaScript的知识都可以非常直接地传输:模板基本上是HTML,带有嵌入式代码,服务器执行这些代码来生成页面的动态部分 最近,我一直在考虑使用GWT来构建我下一个项目的UI。在这一点上,我只是想了解一下GWT开发是如何工作的,因为它似乎遵循了一种完全不同的范式。此外,似乎还有一个未声明的假设,即应用程序的服务器端部分是用Java编写的。在服务器端使用Java以

对于web应用程序开发,我一直沉浸在Ruby、PHP和Python等动态语言中。使用这些语言的流行框架,我所有关于HTML、CSS和JavaScript的知识都可以非常直接地传输:模板基本上是HTML,带有嵌入式代码,服务器执行这些代码来生成页面的动态部分

最近,我一直在考虑使用GWT来构建我下一个项目的UI。在这一点上,我只是想了解一下GWT开发是如何工作的,因为它似乎遵循了一种完全不同的范式。此外,似乎还有一个未声明的假设,即应用程序的服务器端部分是用Java编写的。在服务器端使用Java以外的东西是否不切实际

相关问题:


我认为没有任何要求您在服务器上使用Java。最后,GWT将Java编译成JavaScript。您可以通过
RequestBuilder
对象执行所有通信,无需使用RPC服务


我想问题是:如果你不喜欢/不知道/更喜欢服务器端的Java,那么当它实际上是JavaScript的抽象时,为什么还要在客户端使用它呢?

没有要求在服务器端使用Java。GWT支持现成的JSON。任何可以生成JSON(或其他支持的序列化方法)的服务器端组件都可以工作。您可以在服务器端使用PHP或bash shell脚本,这与GWT生成的Javascript代码无关。

虽然并非不切实际,但我想说,通过在客户端和服务器上使用相同的代码,您可以从GWT获得最大的价值,因为它允许轻松的代码重用(fx.如果您的数据对象是可序列化的,那么您可以直接将它们发送到客户端)因此,我想我的答案是:是的,你可以做到,这将比在服务器端使用Java做更多的工作。

是的,它可以是实用的。我使用Rails作为后端,GWT/GXT作为前端。我喜欢它的每一点!我无法忍受担心浏览器的不兼容性,所以GWT/GXT是一个真正的乐趣。而且,我已经开始使用它了我在Rails中使用了后端,并且在服务器上没有太多使用Java的经验,所以我坚持使用Rails

您可能想看看合适的GWT Rest框架,因为您不会使用RPC

顺便说一句,有一个例外,你应该在服务器上使用Java,那就是如果你想使用Google App Engine

请随时问我任何具体问题,我很乐意帮助你

祝你好运


-JP

JSON在GWT中得到了开箱即用的支持,因此任何能够生成JSON的东西都在服务器端得到了支持。+1:没错,但我必须说,通过Java将GWT+GAE集成在一起很有吸引力……我宁愿一直使用Python,但嘿,我会使用免费的:-)我想再次强调,我的问题是关于这种设置的实用性;我真的不在乎这是否可能,如果它需要我通过各种各样的障碍,使它工作。“GWT支持JSON开箱即用”告诉了我一些事情,但JSON支持是JavaScript本身的一个特性,这并不奇怪,因为JSON是专门为JavaScript设计的。我想这个问题已经得到了回答,但我想问的是,用您的语言实现无状态JSON RPC服务器有多实际。如果很容易将URL映射到代码,并且很容易编写生成所需响应的代码(XML、JSON或GWT喜欢的任何东西…)。。。伟大的您可以从UI和逻辑的良好(强制)划分中获益(附带效果:您不能在这两层之间借用数据对象…)。谢谢,Lars。到目前为止,你的答案是唯一能说明这是否可行的答案(即是否有更多的障碍需要跨越);然而,其他答案更多地讨论了这样的事情是否可能。我真的不熟悉GWT。在这一点上,我仍在努力从更高的层次理解如何使用它,以及它使您能够更轻松地做什么。特别是,我不知道什么是RequestBuilder,也不熟悉RPC服务。你能澄清一下吗?你的问题假设我反对使用Java。这不是想要在服务器端使用其他东西的唯一可能原因。而且,“它是Java”不是GAE的卖点之一。一个例子是它有一个很好的浏览器历史管理系统,它不是标准JavaScript的一部分。另一方面,如果GWT促使您在服务器端使用Java,这是一个完全不同的问题,这正是我要问的。对不起,我以为您已经开始调查了。code.google.com/webtoolkit上的文档可能是一个很好的起点。特别是对于RPC,请参见.Oh和RequestBuilder,它允许您手动构建HTTP请求对象以发送到服务器。@allyourcode:“您的问题假设我反对使用Java”。不,问题是,当Java不是“本机”Java,而是JavaScript的抽象时,为什么要在客户端使用Java,而当Java是“真正”Java时,为什么不在服务器上使用Java。GWT根本不强制或要求您在服务器上使用Java,我只是询问您为什么要这样做。我相信人们可以想出有意义的情况或理由,但对我来说,这似乎不是一个常见的用例。