需要确认我对 Servlet 与 RESTful 网页的区别的理解

Posted

技术标签:

【中文标题】需要确认我对 Servlet 与 RESTful 网页的区别的理解【英文标题】:Need to confirm my understanding of Servlet vs RESTful webpage's difference 【发布时间】:2016-09-06 04:59:10 【问题描述】:

以下关于 RESTFulness 的理解是否正确?

Servlet 网页,例如Jsp,在服务器端组装一个 html 文件,然后将这个 SINGLE html 文档传递给用户。

RESTful 网页(我的意思是,以 RESTful 风格开发的网页)在用户端组装完整的 HTML 文档,每条信息都从单独的 Web 服务 uri 中检索。

例如考虑一个网页来显示一个人的名片: 表明: 人名 人的职业 人的性别

在servlet网页中,给定一个人的ID来请求,后端服务器从DB中收集被请求的人的姓名、职业和性别,将它们组装成一个HTML文件。并将这个 HTML 文件提供给用户。

在RESTful网页中,有一个JS函数使用URI#1检索人名,并渲染到网页DOM上的相应位置;从 URI#2 中检索人的职业,然后渲染;然后是 URI#3 中的性别。

(实际上,资源可能是单人json对象的形式。这里只是为了说明目的将它们分开。)

【问题讨论】:

【参考方案1】:

没有。 “Servlet 网页”仅表示Java Servlets 在服务器端。 "RESTful" 仅表示服务器端应用程序具有模块化结构,其中 URL 对应于资源,通过选择不同的 HTTP 动词进行操作。您正在尝试的区别是single-page application 和(因为没有更好的词)经典网页之间的区别。如果您愿意,您可以在不遵循 REST 的情况下实现单页应用程序;您也可以使用 Java Servlet 实现 RESTful 应用程序。

【讨论】:

感谢您的评论。这是他们定义之间的一些很好的澄清。但我想了解的是抓住他们哲学之间的差异。 互联网上似乎有多种形式的 RESTful-ness 定义。但是仍然有很多人问它的真正含义。 (不开玩笑。我一直在进行谷歌搜索,发现很多页面都有这个问题。)我同意 JSP 也可以做成 RESTful。但就这两种范式的主旨而言,哪些实践被认为符合 RESTful,哪些被认为是旧式 Servlet? 再说一次,我只能说你的问题没有意义——这就像问烘焙甜点和巧克力甜点有什么区别。 RESTful 是符合 REST 的; Servlet 应用程序是使用 JSR-315 中定义的接口实现的。它们不在光谱的对立面。

以上是关于需要确认我对 Servlet 与 RESTful 网页的区别的理解的主要内容,如果未能解决你的问题,请参考以下文章

带有 RESTFul Urls 的 Servlet 应用程序

人人都是 API 设计者:我对 RESTful APIGraphQLRPC API 的思考

Jersey Restful部署到Tomcat注意事项

非RESTful与RESTful

Spring restful

什么是 ASP.NET MVC 的 RESTful?