在浏览器中呈现 Java 进程生成的数据的好方法是什么?
我广泛使用了 JSP 和各种相关框架( JSTL 、 Struts 、 Tapestry 等),以及与 JSP 无关的更全面的框架( GWT 、 OpenLaszlo ) )。没有一个解决方案是完全令人满意的——在大多数情况下,框架对于我的需求来说过于受限或过于复杂,而其他解决方案则需要对现有代码进行大量重构。此外,大多数框架似乎都存在性能问题。
目前,我倾向于通过返回 JSON 的简单 servlet 公开 java 数据,然后使用 PHP 或 Ruby 渲染数据的解决方案。这还有一个额外的好处,即立即将我的服务公开为 Web 服务,但我想知道我是否在这里重新发明轮子。
最佳答案
我个人使用Tapestry 5使用 Java 创建网页,但我同意它有时可能有点矫枉过正。我会考虑使用 JAX-RS( java.net project 、 jsr311 ),它使用起来非常简单,它支持开箱即用地将对象编码到 XML 或从 XML 解编码。可以通过 Jettison 扩展它以支持 JSON .
我尝试过两种实现:
查看以下代码,了解 JAX-RS 可以为您做什么:
@Path("/")
class TestClass {
@GET
@Path("text")
@Produces("text/plain")
String getText() {
return "String value";
}
}
这个小类将在服务器的根目录中公开自身(类上的 @Path),然后在 URI/text 中公开 getText() 方法,并允许通过 HTTP GET 访问它。 @Produces 注释告诉 JAX-RS 框架尝试将方法的结果转换为纯文本。
了解 JAX-RS 功能的最简单方法是阅读 specification .
关于java - Java 网页脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/84149/