我正在设计一个大量使用AJAX的Java Web应用程序(用于用户体验 - 无需重新加载等)。我还需要公开大量的Web服务,因为会有许多不同的客户端(不仅仅是Web浏览器)连接到Java EE后端。
这让我觉得我的AJAX XmlHttpRequests以某种方式(神奇地)封装SOAP消息并直接与我现有的Web服务器通信可能是有意义的,所以我不会编写重复的代码。虽然我现在还不知道如何做到这一点,但我知道这可能是因为我已经找到了一些关于这样做的文章。
我并不关心我能否将AJAX内容发布到Java Web服务;我关心的是是否应该这样做。
这是一种沮丧的做法吗?是否存在我需要注意的安全漏洞或性能问题?从可重用性和系统一致性的角度来看这是有道理的,但我不是AJAX或Java EE专家,在这里要知道更好。
我想我只是对一些受过教育的意见感兴趣。而且,一如既往,谢谢!
答案 0 :(得分:1)
我认为您肯定是在正确的轨道上:尝试DRY并在合理的地方重复使用您的代码。你的方法 - 在我看来 - 非常好,所以我只是有一些评论可能会指出你想要去的方向。
在我看来,特别是在处理AJAX时,Json对您的数据来说将是一种更方便的格式:您的AJAX代码可以直接使用提供的数据结构,您可以节省很多数据开销(特别是如果你正在考虑大量使用服务)和 - 但这是非常主观的 - Json是一种更优雅的数据格式。
我不知道您的其他客户对您的Web服务的期望,但如果您没有修复所传输的消息的格式(尽管您确实提到了SOAP和XML),他们也可以使用和生成Json。
生成和使用Json的一个非常方便的框架是Jersey,如果您只是在研究解析和创建Json,我真的很喜欢Google的Gson。
我建议您查看RESTful网络服务,尤其是与Java EE结合使用时。如果您正在使用符合Java EE 6的服务器,则创建RESTful Web服务非常容易。他们甚至可以生成和使用不同类型的数据格式 - 例如Json和XML。
祝你好运! :)答案 1 :(得分:0)
你可以设计你的代码,这样每次对后端的调用都是通过网络服务(肥皂或休息......那将是你的决定..但是现在事情是在休息时做的)。
关于安全性,您的webserice可以通过oauth调用公开。
答案 2 :(得分:0)
从帖子中我了解到你已经有很多网络服务了。现在你想要设计一个基于此的新Web应用程序。所以你可以重新使用它们。
在这种情况下,您必须考虑一件重要的事情。如果所有这些Web服务都托管在不同的服务器上,那么您将最终遇到跨站点脚本问题。您无法使用ajax与其他服务器通信。如果所有这些网络服务来了 在单个服务器下,您可以考虑使用spring 3.0编写新的Web应用程序。这是构建Java Web应用程序最灵活的框架。
I think you need a GUI rich application.If so my personal pick is to use GWT.I mean to write your client side using GWT.It will gave you full browser compatibility.My suggestion is like this,Build a client side using GWT and you can call server asynchronously by its built in support.Then from server you can communicate any other web service and gave back the necessary data.
希望这会帮助你!!!!!!!!