在最开始学习Web Service时候,总觉得Web Service和Servlet没有什么区别,觉得Servlet可以对Http请求进行相应并返回数据,而Web Service只不过是基于SOAP协议和XML对数据进行封装了,也是采用Http协议来传输数据,后来通过慢慢阅读相关材料,加上实际操作,才发现Web Service和Servlet有很大区别,根本不是在一个层次上的东西,于是对于它们的区别进行总结。

1. 整体概念

Servlet是Java对于Web开发而产生的一项技术,可以说Servlet技术是Java专有的,它是服务器端的技术,客户端通常是浏览器,Servlet提供了请求/响应模式,是JAVA的一种规范,只能使用于Java上,用来替代早期使用的难懂的CGI,是一种无状态的请求响应,客户端访问一个服务器的url,只需要发送简单的httprequest即可。规定了四个范围:pageContext、request、session、application。一定依赖于各种Servlet容器,但Servlet只能接受一个简单的http请求。

WebService最早是微软提出了一种以XML为载体网络信息传输的规范,现在几乎所有的语言与平台都支持,带有状态机制,不依赖于容器,可以发送一个xml作为其请求内容。WebService通常是基于http的远程方法调用(RMI),号称是可以反回远程对象,一般来说客户段可以象调用本地方法一样调用WebService的方法。

可以这么说,开发一个WebService系统,把它放到互联网上,生成一个WebService描述文件wsdl,全世界的任何人,使用几乎任何开发工具,引用了这个wsdl,就像引用了一个动态库的头文件一样,方便的调用你的WebService接口,就像调用本地的方法一样。

2. 数据传输

Servlet使用Http协议传输数据,如果你用Servlet返回XML,那个XML的描述框架就是你定的,必须告知使用者具体的说明,没有统一标准。

Webservice使用固定的XML格式封装成soap消息,可以使用Http作为底层数据传输,但并不局限于Http协议,方法返回消息是有标准的。 Web Service的优点在于可以传递对象(其实是结构化的数据),从而对异构系统来说更有优势。

3. 返回结果

Servlet返回的数据比较简单。

Web Service返回的可以是复杂对象,甚至使用附件或者mutidata的二进制文件。

4. 跨平台性

Servlet依赖于Java平台。

Web Service是跨平台的,无论什么在什么平台使用什么语言开发的Web Service,其他平台上的任何语言都能调用。

总的来说:

Servlet定义的是一套服务于Java Web开发接口,目的是实现Java Web的动态访问。

Web Service是定义了一套标准(SOAP、WSDL、UDDI),各种语言只要按照这个标准都能实现自己的Web Service,并且其他平台和语言根据Web Service的描述文件WSDL就能够轻易地访问这个Web Service。

Web Service和Servlet的区别相关推荐

  1. web service和rpc的区别

    1.rpc RPC的全称叫远程过程调用,在过去一般传输的数据是二进制的,数据的传输形式相对轻量和简单,传输过程相对来说也要高效一些.直到后面XML-RPC的出现,RPC的传输形式相对来说要丰富一些,数 ...

  2. web service 和 remoting 有什么区别

    其实现的原理并没有本质的区别,在应用开发层面上有以下区别: 1.Remoting可以灵活的定义其所基于的协议,如果定义为HTTP,则与Web Service就没有什么区别了,一般都喜欢定义为TCP,这 ...

  3. service、servlet和WebService三者之间的关系

    学习Java很久了,但是一直没怎么弄清楚过service和servlet的区别,下午找了同学聊了聊才发现,一直以来的理解都有错误,下面就为大家好好理清一下他们的关系. 一.service 我们一般理解 ...

  4. Linux网络服务-Web Service之【apache的功能、安装、配置文件介绍以及实验实例】(三)...

    上两张博文: < Linux网络服务-Web Service之[HTTP协议简介](一) > <Linux网络服务-Web Service之[Apache-Prefork.Worke ...

  5. java web中的service,servlet和Dao有什么区别

    servlet一般用于生成网页:service在后端中,web,service,Dao三层中,用于service调用Dao层.DAO类都是进行数据操作的类,是对于数据库中的数据做增删改查等操作的代码. ...

  6. WCF与 Web Service的区别

    [0]问题: WCF与 Web Service的区别是什么? 和ASP.NET Web Service有什么关系? WCF与ASP.NET Web Service的区别是什么? 这是很多.NET开发人 ...

  7. Apache CXF实现Web Service(3)——Tomcat容器和不借助Spring的普通Servlet实现JAX-RS(RESTful) web service...

    起步 参照这一系列的另外一篇文章: Apache CXF实现Web Service(2)--不借助重量级Web容器和Spring实现一个纯的JAX-RS(RESTful) web service 首先 ...

  8. 【REST SOAP】REST和SOAP Web Service的区别比较

    今天遇到一个webservice协议的接口需求,在使用soupUI测试接口连通性的时候,发现使用soupUI新建一个SOAP项目的时候,WSDL链接总是报错打不开(厂家提供的接口规范上写的是SOAP协 ...

  9. 【转】WCF、Net remoting、Web service概念及区别

    Windows通信基础(Windows Communication Foundation,WCF)是基于Windows平台下开发和部署服务的软件开发包(Software Development Kit ...

最新文章

  1. 工作9年开发面试华为要薪1W,华为员工:我司没有这么低工资的岗.....
  2. js容易被忘记的基础知识点————变量类型
  3. DL之GANDCGNNcGAN:GANDCGNNcGAN算法思路、关键步骤的相关配图和论文集合
  4. 工作占用了太多私人时间_职晓|如果工作占用了生活时间,我应不应该辞职?...
  5. [转]【JAVA各版本特性】JAVA 1.0
  6. BZOJ 1012 单调队列+二分
  7. 最常用的数据库脚本前十名
  8. 如何系统地学习数据挖掘
  9. 三星固态硬盘linux驱动,三星固态硬盘驱动NVMe Driver
  10. 起点不高,又很迷茫怎么办
  11. [文章] 小本本记下来--CC
  12. Android压缩Apk
  13. 软件是用计算机解决问题的过程,1.1 计算机解决问题的过程
  14. EasyMicroPlot: 一种快速进行微生物下游分析的整合R包
  15. 苹果开启了UWB上下游成熟的大门
  16. 使用react完成图片放大功能(淘宝放大镜)
  17. DataX及DataX-Web
  18. [DeploymentService:290066]Error occurred while downloading files from admin server for deployment re
  19. 在使用 bitvise SSH client时,进行隧道S2C端口映射时,远程主机外网不能访问问题。
  20. WinFrom内嵌chrome浏览器

热门文章

  1. Android之ANR异常及解决方法
  2. [python opencv 计算机视觉零基础到实战] 八、ROI泛洪填充
  3. 重庆大学计算机课程设计,计算机组成原理课程设计报告重庆大学.doc
  4. mysql交叉编译 cmake_CMake交叉编译配置
  5. 软件测试技术——软件测试概述
  6. 不当败家子的原因......
  7. 程序员从入门到升级,或许可以看一看这几个公众号
  8. 应对程序员面试,你必须知道的8大数据结构
  9. “一边熬夜一边求不要猝死”,90后养生朋克指南,条条扎心!
  10. java enum优点_你需要关注的 Java Enum 枚举的几个细节