8

我最近一直在研究 JAX-RS,因为我真的很喜欢 Java 平台和 RESTful 风格的 Web 开发。我已经阅读了很多关于使用 JAX-RS 创建 RESTful Web 服务的内容,但是是否可以使用 JAX-RS 创建 RESTful 网站?我想更具体地说,是否可以使用 JAX-RS 作为控制器(从服务器检索所需的数据),然后将控制权转发给视图引擎以呈现适当的 HTML?

我一直在谷歌搜索,但没有找到任何资源来告诉你如何做到这一点。

感谢您的任何见解/帮助。

4

3 回答 3

6

我认为您在进行谷歌搜索时遇到了困难,因为这样做的人并不多。JAX-RS 是为 Web 服务设计的,因此开发人员不会考虑将其用作 Web 应用程序的控制器。但是,它没有理由不起作用。

查看这篇博文:JAX-RS 作为一个 Java Web 框架来统治它们?

我认为这正是您正在寻找的那种东西。

于 2010-07-14T01:08:11.010 回答
3

dbyrne 是对的,几乎没有人这样做。使用 JAX-RS 将信息转储到 JSON 或 XML 更为传统。然后,您可以使用 RIA 框架(例如Ext JS)来设计 Web 浏览器,该框架处理 DOM 并以 JSON/XML 形式获取数据并注入数据。这种方法很强大。您可以为服务编写多个可能不是浏览器的客户端,它们都解析相同的 JSON/XML。您可以编写“单页”网络应用程序,所有信息交换在初始页面加载后通过 AJAX 进行。我敦促您根据您的特定问题调查并考虑其优势和劣势。

回到你的问题:答案是“有点”。JAX-RS 规范(从 1.1 开始)不直接提供此功能。但是,它JAX-RS 参考实现Jersey中通过Viewable响应对象。如果您想进一步调查,请参阅此博客文章:http: //blogs.oracle.com/sandoz/entry/mvcj。我想指出,我对泽西的这一面没有经验。用 Jersey 编写返回 XML/JSON 的 Web 服务是一件令人愉快的事情,但我不能谈论这个服务器端 HTML 模板业务。

编辑:dbyrne 编辑了他的答案,包括一篇指向上述内容的博客文章。我认为我们都已经得出了大致相同的答案。

于 2010-07-14T01:31:33.433 回答
3

如果您真的只想将 JAX-RS 用于您的 Web 框架,那么 Jersey 可能是您最好的选择。请记住,您从中获得的功能将是最低限度的,而且您显然不会像 JSF、Wicket 等提供的那样获得所有的花里胡哨。

如果您知道您的 Web 应用程序将依赖 Spring,也许您应该考虑使用 Spring MVC 3.0。它提供了类似 RESTful 的 Web 服务,并为您提供了更好的功能,因此您无需自己实现其中的大部分功能。诚然,Spring MVC 3.0 不是 JAX-RS 的实现,根据 Spring 开发人员所说的,似乎他们永远不会将 Spring MVC 作为 JAX-RS 的实现,因为它们已经是相当多的稳定实现了。但是,在我看来,语法非常相似,或者至少我能够相当快地理解它们,即使我已经使用 Jersey 有一段时间了。

于 2010-07-14T15:15:05.030 回答