深入理解REST与Servlet架构的区别

深入理解REST与Servlet架构的区别

本身这个比较是个伪命题,因为

  • RESTful Service是一个软件架构“风格”,
  • 而servlet是java 服务端的一种技术

之所以把它们拿出来比较,是由于它们代表了两个时代的技术风格与架构。下面就来阐述这两种技术架构的区别。

Servelt API是1998年发布的,它的核心API一直变化不大,非常稳定,也是JavaEE众多API中最成功的一个。基于Servlet API产生了众多的框架,比较大家最熟悉的Structs,Spring MVC等。和REST对比,它们有如下特征

  • 它们的核心理念是servelt与handler之前的一个mapping,利用一个配置文件(spring mvc可以是annotation式的配置)来处理servlet和handler之间的mapping关系。
  • Servlet具有session状态,这也方便了服务器端实现一些带状态的逻辑。但同时这样也导致了servlet实现多服务器的架构带来了困难,就必须实现复杂的负载均衡、session复制、持久化机制。
  • Servlet获取客户端信息的方式更多的是通过request parameters。想想你经常通过getParamter就可以明白。

相对于Servlet,RESTful更多的是一种架构方式的改进,它强调以下几点:

  • 通过请求URL来获取信息,路径即是信息,这也是HTTP的核心理念。
  • 无状态,状态转而通过应用层或者数据库层来维护。
  • 通过http的POST, DELTE, PUT, GET等方式来实现数据的增删改查。而不再是借以前servlet中我们经常定义的通过方法名来区别各个方式,比如getXXXByXXX,updateXXX等等。

参考:

http://stackoverflow.com/questions/7874695/servlet-vs-restful

http://www.blogjava.net/Jack2007/archive/2008/10/08/233075.html

时间: 2024-11-06 17:11:26

深入理解REST与Servlet架构的区别的相关文章

理解本真的REST架构风格

引子 在移动互联网.云计算迅猛发展的今天,作为一名Web开发者,如果您还没听说过“REST”这个buzzword,显然已经落伍了.夸张点说,甚至“出了门都不好意思跟别人打招呼”.尽管如此,对于REST这个泊来品的理解,大多数人(包括一些资深的架构师)仍然停留在“盲人摸象”的阶段.常常听到各种各样关于REST的说法,例如:有人说:“我们这套新的API决定不用Web Service(SOAP+WSDL),而是直接使用HTTP+JSON,也就是用RESTful的方式来开发.” 不用SOAP,甚至也不用

理解本真的REST架构风格(转)

本文是“深入探索REST”专栏系列深度内容中的第二篇,它将带您领略REST架构的起源.与Web的关系.REST架构的本质及特性,以及REST架构与其他架构风格之间的比较. 引子 在移动互联网.云计算迅猛发展的今天,作为一名Web开发者,如果您还没听说过“REST”这个buzzword,显然已经落伍了.夸张点说,甚至“出了门都不好意思跟别人打招呼”.尽管如此,对于REST这个泊来品的理解,大多数人(包括一些资深的架构师)仍然停留在“盲人摸象”的阶段.常常听到各种各样关于REST的说法,例如:有人说

[转]理解本真的REST架构风格-By李锟

最近看到一个词语“REST”风格,就百度了一下,度娘很给力,下面就是我认为写的最好的一篇介绍. 原文地址:http://www.infoq.com/cn/articles/understanding-restful-style 本文是“深入探索REST”专栏系列深度内容中的第二篇,它将带您领略REST架构的起源.与Web的关系.REST架构的本质及特性,以及REST架构与其他架构风格之间的比较. 引子 在移动互联网.云计算迅猛发展的今天,作为一名Web开发者,如果您还没听说过“REST”这个bu

转:理解本真的 REST 架构风格

引子 在移动互联网.云计算迅猛发展的今天,作为一名 Web 开发者,如果您还没听说过"REST"这个 buzzword,显然已经落伍了.夸张点说,甚至"出了门都不好意思跟别人打招呼".尽管如此,对于 REST 这个泊来品的理解,大多数人(包括一些资深的架构师)仍然停留在"盲人摸象"的阶段.常常听到各种各样关于 REST 的说法,例如:有人说:"我们这套新的 API 决定不用 Web Service(SOAP+WSDL),而是直接使用 H

JSP和servlet有什么区别?

JSP和servlet有什么区别? JSP是Servlet技术的扩展,本质上是Servlet的简易方式,更强调应用的外表表达. JSP编译后是"类servlet". Servlet和JSP最主要的不同点: 1.  Servlet的应用逻辑是在Java文件中,并且完全从表示层中的HTML里分离开来. 2. JSP的情况是Java和HTML可以组合成一个扩展名为.jsp的文件. 3. JSP侧重于视图,Servlet主要用于控制逻辑

JQuery添加扩展方法(理解$.extend(),与$.fn.extend()方法区别)

理解$.extend(),与$.fn.extend()方法区别 1.$.extend()方法 $.extend()方法在JQuery中有两个用法,第一次是扩展方法, 第二个方法是 jQuery.extend([deep], target, object1, [objectN]) 返回值:Object 把2个对象合并得到新的target,deep是可选的(递归合并) 合并 settings 和 options,修改并返回 settings. jQuery 代码: var settings = {

关于命名空间的理解---iostream与iostream.h的区别

C++中为了避免名字定义冲突,特别引入了"名字空间的定义",即namespace.当代码中用<iostream.h>时,输出可直接引用cout<<x;<iostream.h>继承C语言的标准库文件,未引入名字空间定义,所以可直接使用. 当代码中引入<iostream>时(C++标准),输出需要引用std::cout<<x;如果还是按原来的方法就会有错,或者直接添加using namespace std; 实例: code1 #

Java中微服务架构与传统架构的区别

Java中微服务架构与传统架构的区别 在聊微服务之前,先来看看传统架构的优缺点. 传统的 MVC 架构,所有的子系统都集成在一个很繁杂的 JVM 进程中. 优点: 这种单体架构的优点在于方便管理,所有代码在同一项目中,但是当需求越来越多,项目规模越来越大,其坏处也很明显. 缺点: 1.项目过于臃肿,部署效率低下 当大大小小的功能模块都集中在同一项目的时候,整个项目必然会变得臃肿,让开发者难以维护.单体应用的代码越来越多,依赖的资源越来越多时,应用编译打包.部署测试一次非常耗时.系统高可用性差,资

个人对JavaWeb中MVC与三层架构的区别理解

JavaWeb中MVC是指B/S结构开发中的一种设计模式,能够将Web页面与业务逻辑以及数据库操作之间的耦合性降到最低点,易于代码的重用以及后期维护.而三层架构的概念在JavaWeb中则是指Web层,业务层,数据层.但三层架构中却是把MVC中的Model,也就是JavaBeans分成业务层和数据层,而把Controller控制器以及View视图合并成Web层.二者之间最大的区别在于MVC只限于JavaWeb,而三层架构则能够实现在非Web应用平台之上,只需替换掉Web层足以,而业务层与数据层依旧