【问题标题】:The simplest way to map URLs to request handlers in Java在 Java 中将 URL 映射到请求处理程序的最简单方法
【发布时间】:2011-09-19 23:41:47
【问题描述】:

我正在为一个内部应用程序用 Java 制作一个简单的 RPC 服务器原型。

虽然最终我想切换到专用的高性能 RPC 库,例如 MessagePack、Apache Avro 或 Java 绑定到 0mq,但现在我想让事情尽可能简单,所以我开始通过 HTTP 使用 JSON。我想使用 Jetty,这样我就可以嵌入网络服务器并使安装和部署尽可能简单。但是我对 Java webdev 没有太多经验,并且我正忙于将少数特定请求处理程序对象中的每一个与特定 URL 相关联的非常简单的挑战。我的总体印象是,这可能是 web.xml 文件的用途,但如果可能的话,我宁愿将它连接到源代码中。

我应该强调,我不需要像会话、模板、数据库访问等有趣的 webapp 功能。我只需要从 POST 请求正文中获取一个 JSON 字符串,做一些事情,然后在响应中写回一个字符串.

所以基本上,写两个请求处理程序(servlet?)的最佳方法是什么,它们分别返回大写和小写的请求正文,并使用路径“/upper”和“/lower”注册我的服务器,最好不使用配置文件。这将在嵌入式 Jetty 应用程序中进行,但如果您不想这样做,当然不需要依赖它。

【问题讨论】:

    标签: java servlets jetty rpc


    【解决方案1】:

    如果您不想设置配置文件,Jetty API 对您来说应该非常方便。开始here

    【讨论】:

      【解决方案2】:

      我个人会用 Spring 来做。 Spring 可以做很多事情,正如您所说,您不需要大量的 Web 功能,但您仍然可以从中挑选您想要的功能。

      根据您的需要,您可以使用单个控制器设置 Spring,并在处理请求的方法上使用 @ResponseBody 注释。然后,您告诉 Spring 将响应对象序列化为 JSON(我认为它实际上是默认值)。然后 Spring 为您处理序列化,您的代码只处理 Java 对象。

      这里有一篇关于我正在谈论的功能的更详细的文章:http://java.dzone.com/articles/spring-3-rest-json-path-variables

      如果您四处搜索,您可能会看到很多带有一堆讨厌的 xml 配置的示例,但不用担心,更高版本的 Spring 只需几行 Java 代码即可配置。

      要解决您关于使用 Avro 的注意事项,实际上设置它并没有您想象的那么难。这是一个在 servlet 容器中为您的服务器组件使用 Avro 的完整示例应用程序: http://code.google.com/p/avro-http-example/wiki/Guide

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-04-17
        • 2013-07-20
        • 2023-03-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多