在java中构建rest api时使用servlet有啥好处

Posted

技术标签:

【中文标题】在java中构建rest api时使用servlet有啥好处【英文标题】:What are advantages of using servlets when building rest api in java在java中构建rest api时使用servlet有什么好处 【发布时间】:2019-05-03 20:40:58 【问题描述】:

我一直在从事几个项目(其中一些非常大),我们总是使用 grizzly2-http 服务器 + jersey 来构建 rest api,我们从来没有遇到任何问题。现在,我一直在寻找其他一些选项,以确保我不会错过一些重大改进,我喜欢 undertow,但它基于 servlet,我以前没有使用过它们,我在球衣容器列表中没有看到它(https://github.com/jersey/jersey/tree/master/containers 虽然我确信它可以以某种方式使用)。我的问题是使用 servlet 实现 rest api 有什么好处?

我找到了很多答案,什么是 servlet 以及它们的作用,但在我看来,每个人都只是在使用 servlet,这是某种约定,没有人真正列出优于“无容器”的优势(这只是我能找到的术语)。是否有一些安全性、性能优势?

【问题讨论】:

Servlet 是 Java 中用于构建 HTTP 服务的事实上的标准,因此大多数东西都建立在 servlet 之上,因为 servlet 无处不在(包括 Jersey)。 【参考方案1】:

这个问题更具实验性,因此每个人可能会根据他/她的知识有不同的答案/意见。

我个人认为,当您决定编写 REST 应用程序时,应该考虑使用 Servlet 的一些原因:

Java 有许多出色的安全库(例如:Spring Security),它们可以配置并与 Servlet 过滤器一起使用,从而有效地控制您的所有请求 使用 java 时 JSON 序列化和反序列化很容易,因为有 gson、jackson 等库 使用 Java 编码时很容易遵循正确的模块化方式,因为 Java Enterprise 堆栈非常适合创建 MVC 和 N 层应用程序 借助出色的 Java 开源项目(例如:Kafka、hadoop 等),您可以在 Java 应用程序中将大量优秀的企业库与您的 REST 数据集成在一起 大多数可能的平台在其大部分服务中都有一个 Java 客户端库,因此最好用 Java 编写 REST 代码,因为以后您可能需要转移到其中一个云中并且随着您的项目变得更大,您无需担心如何连接到这些平台(在您的后端)

当您编写大型项目时,有很多原因 选择某些技术。也许技术任务只是其中之一 那些担忧。你必须预测你的项目将在哪里进行 未来并基于此决定选择现有的最佳解决方案。

【讨论】:

以上是关于在java中构建rest api时使用servlet有啥好处的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Java Spring 安全性构建功能齐全的 RESTful API

如何在基于 SpringBoot 构建的 Java REST API 中查找源代码的哪一部分执行时间更长?

java 使用Apache Jena的API(不是RESTful API)从RDF数据构建数据库并回答Java中的SPARQL查询

Spring Boot构建RESTful API与单元测试

托管基于 Java 的 REST API 服务

Java / Spring中与Restful API交互的工具[重复]