Web Service和Servlet的区别
在最开始学习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的区别相关推荐
- web service和rpc的区别
1.rpc RPC的全称叫远程过程调用,在过去一般传输的数据是二进制的,数据的传输形式相对轻量和简单,传输过程相对来说也要高效一些.直到后面XML-RPC的出现,RPC的传输形式相对来说要丰富一些,数 ...
- web service 和 remoting 有什么区别
其实现的原理并没有本质的区别,在应用开发层面上有以下区别: 1.Remoting可以灵活的定义其所基于的协议,如果定义为HTTP,则与Web Service就没有什么区别了,一般都喜欢定义为TCP,这 ...
- service、servlet和WebService三者之间的关系
学习Java很久了,但是一直没怎么弄清楚过service和servlet的区别,下午找了同学聊了聊才发现,一直以来的理解都有错误,下面就为大家好好理清一下他们的关系. 一.service 我们一般理解 ...
- Linux网络服务-Web Service之【apache的功能、安装、配置文件介绍以及实验实例】(三)...
上两张博文: < Linux网络服务-Web Service之[HTTP协议简介](一) > <Linux网络服务-Web Service之[Apache-Prefork.Worke ...
- java web中的service,servlet和Dao有什么区别
servlet一般用于生成网页:service在后端中,web,service,Dao三层中,用于service调用Dao层.DAO类都是进行数据操作的类,是对于数据库中的数据做增删改查等操作的代码. ...
- WCF与 Web Service的区别
[0]问题: WCF与 Web Service的区别是什么? 和ASP.NET Web Service有什么关系? WCF与ASP.NET Web Service的区别是什么? 这是很多.NET开发人 ...
- 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 首先 ...
- 【REST SOAP】REST和SOAP Web Service的区别比较
今天遇到一个webservice协议的接口需求,在使用soupUI测试接口连通性的时候,发现使用soupUI新建一个SOAP项目的时候,WSDL链接总是报错打不开(厂家提供的接口规范上写的是SOAP协 ...
- 【转】WCF、Net remoting、Web service概念及区别
Windows通信基础(Windows Communication Foundation,WCF)是基于Windows平台下开发和部署服务的软件开发包(Software Development Kit ...
最新文章
- 工作9年开发面试华为要薪1W,华为员工:我司没有这么低工资的岗.....
- js容易被忘记的基础知识点————变量类型
- DL之GANDCGNNcGAN:GANDCGNNcGAN算法思路、关键步骤的相关配图和论文集合
- 工作占用了太多私人时间_职晓|如果工作占用了生活时间,我应不应该辞职?...
- [转]【JAVA各版本特性】JAVA 1.0
- BZOJ 1012 单调队列+二分
- 最常用的数据库脚本前十名
- 如何系统地学习数据挖掘
- 三星固态硬盘linux驱动,三星固态硬盘驱动NVMe Driver
- 起点不高,又很迷茫怎么办
- [文章] 小本本记下来--CC
- Android压缩Apk
- 软件是用计算机解决问题的过程,1.1 计算机解决问题的过程
- EasyMicroPlot: 一种快速进行微生物下游分析的整合R包
- 苹果开启了UWB上下游成熟的大门
- 使用react完成图片放大功能(淘宝放大镜)
- DataX及DataX-Web
- [DeploymentService:290066]Error occurred while downloading files from admin server for deployment re
- 在使用 bitvise SSH client时,进行隧道S2C端口映射时,远程主机外网不能访问问题。
- WinFrom内嵌chrome浏览器
热门文章
- Android之ANR异常及解决方法
- [python opencv 计算机视觉零基础到实战] 八、ROI泛洪填充
- 重庆大学计算机课程设计,计算机组成原理课程设计报告重庆大学.doc
- mysql交叉编译 cmake_CMake交叉编译配置
- 软件测试技术——软件测试概述
- 不当败家子的原因......
- 程序员从入门到升级,或许可以看一看这几个公众号
- 应对程序员面试,你必须知道的8大数据结构
- “一边熬夜一边求不要猝死”,90后养生朋克指南,条条扎心!
- java enum优点_你需要关注的 Java Enum 枚举的几个细节