【问题标题】:How to create a RESTful Web Service using Servlet (without Jersey, etc)?如何使用 Servlet(没有 Jersey 等)创建 RESTful Web 服务?
【发布时间】:2017-03-26 08:24:09
【问题描述】:

如何在不使用任何 JAX-RS 实现(Jersey 等)的情况下使用 Servlet 创建 RESTful Web 服务?

【问题讨论】:

    标签: java web-services rest servlets jersey


    【解决方案1】:

    基本上你完全正确,你不需要一个框架来实现 REST API。

    例如,您可以在简单的 servlet 类中执行基本的 crud 操作,如下所示:

    @WebServlet(urlPatterns = "/book/*")
    public class BookServlet extends HttpServlet {
       @Override
       public void doGet(HttpServletRequest request, HttpServletResponse response) {
         // fetch from db
       }
       @Override
       public void doPost(HttpServletRequest request, HttpServletResponse response) {
         //update
       }
       @Override
       public void doDelete(HttpServletRequest request, HttpServletResponse responce) {
        //delete
       }
    }
    

    这有点不方便,因为您需要手动解析 url 参数,进行序列化,但在底层,JAXRS 和 Spring MVC 只是一个 servlet! 因此,如果您不希望代码中存在依赖关系,我建议您在 servlet api 上实现一些方便的包装器。

    提示:您可以像这样从请求中解析路径参数:

    String info = request.getPathInfo(); 
    String[] parts = pathInfo.split("/");
    String param1 = pathInfo[0];
    

    因此,例如,如果您有这样的请求: HTTP GET /book/{id} 您将在 param1 中获得 {id},以后可以在数据库查找中使用它。

    【讨论】:

    • String pathInfo = request.getPathInfo(); String[] parts = pathInfo.split("/"); String param1 = parts[0];
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-11
    • 1970-01-01
    • 2014-09-13
    • 2017-05-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多