简体   繁体   English

如何使用Servlet创建RESTful Web服务(没有Jersey等)?

[英]How to create a RESTful Web Service using Servlet (without Jersey, etc)?

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

Basically you absolutely right, you don't need a framework in order to implement REST API. 基本上你绝对正确,你不需要一个框架来实现REST API。

For instance, you could do basic crud operations in simple servlet class, like this: 例如,您可以在简单的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
   }
}

It's a little bit inconvenient since you need to manually parse url params, do serialization, but under the hood, JAXRS and Spring MVC is just a servlets! 这有点不方便,因为你需要手动解析url params,进行序列化,但是在引擎盖下,JAXRS和Spring MVC只是一个servlets! So, if you don't want dependencies in your code, I could suggest to just implement some convenient wrappers over servlet api. 所以,如果您不想在代码中使用依赖项,我可以建议在servlet api上实现一些方便的包装器。

Tip: you could parse path params from request like this: 提示:您可以从请求中解析路径参数,如下所示:

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

So, for instance, if you have request like this: HTTP GET /book/{id} You'll get {id} in param1 which can be later used in database lookup. 所以,例如,如果您有这样的请求:HTTP GET / book / {id}您将在param1中获得{id},稍后可以在数据库查找中使用它。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM