java - Servlet 与 REST

标签 java rest servlets

我需要在服务器端创建 5 个方法来处理二进制数据。远程客户端是小程序和 JavaScript。客户端将向服务器发送文件,服务器必须解析这些文件,然后以 XML/JSON 的形式返回响应。

所以我很困惑 - 在这种情况下使用 REST 服务是一种好习惯吗?还是我应该使用 servlet?

我的同事告诉我:

"Creating REST-service that will be used only by one Application isn't good. REST must be created only when it will be used by many apps. And REST has some disadvantages over servlet: REST is slower than servlet; it more difficult to write thread-safe REST than servlet"

但是,我看到使用 Servlet 的一些缺点:我需要发送一个我想要调用的函数名(即作为额外的 HTTP 参数发送函数名) 然后在 doPost 方法内部执行以下切换:

switch(functionName) {
 case "function1":
   function1(); 
   break;
 case "function2"
   function2(); 
   break;
//.... more `case` statements....

}

在 REST 的情况下,我可以简单地将不同的 URL 用于不同的功能。 另外,在 REST 的情况下,从服务器返回 JSON/XML 更方便。

最佳答案

您在这里混淆了两种范式:

  • REST 是一种软件架构“风格”;
  • Servlet 是一种服务器端技术。

例如,您可以使用 Servlet 实现类似 REST 的服务。

关于java - Servlet 与 REST,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12525771/

相关文章:

Java正则表达式分割xml xpath

python - Flask-sqlalchemy - 计算请求 REST 端点(或数据库记录)的次数

带有负载的 REST DELETE

java - Spring data jpa 在非常具体的场景中抛出 TransientObjectException

java - 枚举参数的编译时验证

java - @override 在 android 中使用 onDraw 导致错误

rest - 使用 Photoshop 脚本上传图像

spring - 使用 ServletContextListener 进行单元测试

tomcat - tomcat是如何访问Servlet的?

java - (持久化)无法创建实体管理器