java - Java 网页脚本

标签 java jsp scripting

在浏览器中呈现 Java 进程生成的数据的好方法是什么?

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

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

最佳答案

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

我尝试过两种实现:

  • Jersey - JAX-RS 的引用实现。
  • Resteasy - 我更喜欢的实现,对编码和解码各种格式的良好支持。也相当稳定,并且比 Jersey 有更多功能。

查看以下代码,了解 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/

相关文章:

java - 如何将对象从 Spring 3.0 Controller 传递到 JSP View 并使用 JSTL 进行测试

user-interface - Tcl/Tk 示例?

linux - 使用脚本来组织文件

java - 如何在 JTextPane 上添加不同颜色的文本

java - 创建正则表达式匹配数组

java - jsp 中的转义符 '(勾选)

java - JSP 文件输出 If/Else 问题

linux - 如何在 bash (Linux) 中使用相同的平面文件更新平面文件?

java - 网络启动 : What os and arch does my system return?

java - 为什么我无法访问泛型类型类元素?