2008-09-17 75 views
0

什么是在浏览器中呈现由Java进程生成的数据的好方法?用于Java的Web脚本

我已经广泛使用JSP和各种相关的框架(JSTLStrutsTapestry等),以及不相关的JSP(GWTOpenLaszlo)更全面的框架。从来没有一个解决方案是完全令人满意的 - 在大多数情况下,框架对我的需求来说过于束缚或太复杂,而其他解决方案则需要对现有代码进行大量的重构。另外,大多数框架似乎都有性能问题。

目前我倾向于通过返回JSON的简单servlet公开我的java数据,然后使用PHP或Ruby呈现数据的解决方案。这还具有即时将我的服务作为Web服务公开的附加好处,但我想知道我是否在这里重新发明轮子。

回答

2

我个人使用Tapestry 5用Java创建网页,但我同意它有时可能有点矫枉过正。我会考虑使用JAX-RS(java.net projectjsr311),它使用起来非常简单,它支持将对象从XML中解组或解组到XML中。可以通过Jettison将其扩展为支持JSON。

有迹象表明,我已经尝试了两种实现方式:

  • Jersey - 对JAX-RS的参考实现。
  • Resteasy - 我喜欢的实现方式,很好的支持编组和解编各种格式。也相当稳定,并有更多的功能,泽西岛。

看看下面的代码获得什么JAX-RS可以为你做一个感觉:

@Path("/") 
class TestClass { 
    @GET 
    @Path("text") 
    @Produces("text/plain") 
    String getText() { 
     return "String value"; 
    } 
} 

这个微小的类将在服务器的根暴露本身(@路径上该类),然后在URI /文本中公开getText()方法并允许通过HTTP GET进行访问。 @Produces注释告诉JAX-RS框架尝试将方法的结果转换为纯文本。

了解JAX-RS可能的最简单方法是阅读specification

0

也许你可以生成数据为XML并使用XSLT呈现它?

如果Java对您来说不够快,我不确定PHP或Ruby是否是答案!

1

我们正在使用Stripes。它给你比直接的servlet更多的结构,但它可以让你通过@UrlBinding注解来控制你的url。我们使用它来将xml和json传回浏览器以获取ajax内容。

如果您想要走这条路线,您可以很容易地使用其他技术来使用它,但实际上您可能喜欢使用条纹进行开发。

1

检出Restlet,将您的域模型作为REST服务(包括JSON和普通的XML输出)公开为一个好框架。

为了呈现您的信息,也许您可​​以在客户端使用GWT并使用您的数据服务?如果GWT不漂浮你的船,那么也许JQuery会呢?