我最近一直在研究JAX-RS,因为我真的很喜欢Java平台和RESTful风格的web开发。我读过很多关于使用JAX-RS来创建RESTful Web服务的文章,但是是否可以使用JAX-RS来创建RESTful网站?我猜更具体地说,是否可以使用JAX-RS作为控制器(从服务器检索所需的数据),然后将控制转发给视图引擎以呈现适当的HTML?
我一直在谷歌上搜索,但还没有找到任何资源来告诉你如何做到这一点。
感谢你的见解/帮助。
发布于 2010-07-14 01:08:11
我认为你在谷歌搜索上遇到了困难,因为没有多少人这样做。JAX-RS是为web服务设计的,因此开发人员不会考虑将其用作web应用程序的控制器。然而,它没有理由不起作用。
查看这篇博文:JAX-RS as the one Java web framework to rule them all?
我想这正是你要找的那种东西。
发布于 2010-07-14 01:31:33
dbyrne是对的,几乎没有人这样做。更传统的做法是使用JAX-RS将信息转储到JSON或XML。然后你会想到web浏览器上有一个RIA框架(例如Ext JS),它可以处理DOM的操作和在JSON/XML格式中获取数据时注入数据。这种方法非常强大。您可以为服务编写多个可能是非浏览器的客户端,所有客户端都解析相同的JSON/XML。您可以编写“一页”webapps,在初始页面加载之后,所有信息交换都通过AJAX进行。我敦促您在您的特定问题背景下调查和考虑它的优点和缺点。
回到你的问题:答案是“某种程度上”。此功能不是由JAX-RS规范直接提供的(从1.1开始)。但是,它是在JAX-RS参考实现Jersey中通过Viewable
响应对象实现的。如果你想进一步研究,请参阅这篇博客文章:http://blogs.oracle.com/sandoz/entry/mvcj。我想指出的是,我在泽西岛的这一边没有的经验。用Jersey编写返回XML/JSON的web服务是件令人愉快的事情,但是我不能谈论服务器端的HTML模板业务。
编辑:dbyrne编辑了他的答案,包括了一篇指向上面提到的博客文章。我认为我们已经在大致相同的答案上取得了一致。
发布于 2010-07-14 15:15:05
如果你真的想在你的web框架中只依赖JAX-RS,Jersey可能是你最好的选择。请记住,您从它获得的功能将是最低限度的,而且您显然不会获得JSF、Wicket等提供的所有花哨功能。
如果您知道您的web应用程序将依赖于Spring,也许您应该考虑使用Spring MVC 3.0。它提供了restful web服务--类似的,并且它为你提供了更好的特性,所以你不需要自己去实现它们中的大多数。诚然,Spring MVC 3.0不是JAX-RS的实现,根据Spring开发人员的说法,他们似乎永远不会将Spring MVC作为JAX-RS的实现,因为它们已经是相当多的稳定实现。然而,在我看来,语法非常相似,或者至少我能够相当快地理解它们,尽管我已经使用Jersey很长一段时间了。
https://stackoverflow.com/questions/3242523
复制相似问题