Web Service和Servlet的区别

时间:2023-03-08 17:58:17
Web Service和Servlet的区别

没接触过web service今天看了一篇文章转过来。

在最开始学习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。

转自:http://blog.csdn.net/guoweimelon/article/details/50772919