在最开始学习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. Flutter retrofit:only “package“ and “asset“ schemes supported
  2. 深入理解C系列:不同类型变量的变量名和内存间的关系
  3. 【项目管理】人力资源管理
  4. 1 个闭环 + 1 个案例,为你解读实现数据驱动的秘诀
  5. 监控工具—Prometheus—安装部署
  6. ECMAScript6 模版字符串
  7. debian源码编译安装mysql5.6_MySQL 5.6 Linux Debian/Ubuntu源码编译安装 LNMP之MySQL
  8. 8个深度学习方面的最佳实践
  9. 【毕业答辩】如何做出90分的毕业答辩PPT?
  10. 2. Browser 对象 - Window 对象(2)
  11. NAT 内网穿透原理
  12. 四川理工计算机专业好不好,急!!!!四川理工 、 宜宾学院 、 内江师范学院 哪个学校计算机专业好点?...
  13. [转]海尔集团CEO张瑞敏演讲《人不成熟的几大特征》
  14. 如何修改文件的创建时间(回忆录)
  15. C语言 —— for循环(一)
  16. linux 默认无线网卡设置密码,Linux系统中配置和获取无线网卡信息的命令用法
  17. 数据结构和算法之常用 10 种算法
  18. sql根据汉字内容自动产生拼音和五笔首字母
  19. uniapp最全面的知识总结
  20. Crack:GoJS 2.2.18 -2022-09-08 update

热门文章

  1. [python opencv 计算机视觉零基础到实战] 十二 直方图
  2. 【C语言简单说】一:第一个C语言程序
  3. oracle使用max提升效率,Oracle调优之利用max与leftjoin来进行不同表之间匹配
  4. 道理我都懂,但你到底为什么偏偏喜欢咬我??
  5. 她只用1个方法,就把英语拿下了!
  6. 21副酷炫的动图让你了解各种数学概念
  7. C语言关系 是行还是列,C语言行优先和列优先的问题深入分析
  8. wince导航_宁可用手机导航,也不用汽车导航?
  9. html5 svg组态图,绘制SVG内容到Canvas的HTML5应用
  10. 构造函数怎么在主函数调用_C++ 虚基类及其派生类构造函数(学习笔记:第7章 12)...