定义区别
Servlet是Java Servlet的简称,称为小服务程序或服务连接器,用Java编写的服务器端程序,主要功能在于交互式地浏览和修改数据,生成动态Web内容。
WebService是一个平台独立的,低耦合的,自包含的、基于可编程的web的应用程序,可使用开放的XML(标准通用标记语言下的一个子集)标准来描述、发布、发现、协调和配置这些应用程序,用于开发分布式的互操作的应用程序。
两者相同点,都是客户端访问一个服务器的url,然后得到返回结果。servlet是基于http的请求应答模式的 ,而大部分WebService低层也使用http作为实现。
区别1:数据传输上的不同
Servlet使用http协议传输数据,如果你用Servlet返回XML,那个XML的描述框架是由各个开发者自己决定的,必须告知使用者具体的说明,没有统一标准。
WebService使用固定的XML格式封装成soap消息,可以使用http作为底层数据传输,但并不局限于http协议,方法返回消息是有标准的。
区别2:请求的不同
Servlet提供了请求/响应模式,是JAVA的一种规范,只能使用于java上,是一种无状态的请求响应,客户端访问一个服务器的url,只需要发送简单的httprequest即可。规定了四个范围:pageContext、request、session、application。一定依赖于各种servlet容器,且servlet只能接受一个简单的http请求。
WebService最早是微软提出了一种以XML为载体网络信息传输的规范,现在几乎所有的语言与平台都支持,带有状态机制,不依赖于servlet容器,可以发送一个xml作为其请求内容,WebService通常是基于http的远程方法调用,号称是可以返回远程对象。
区别3:返回结果的不同
Servlet返回的数据比较简单。
WebService返回的可以是复杂对象,甚至使用附件或者mutidata的二进制文件。
区别4:部署方式的不同
Servlet需要遵守j2ee的Web Application规范部署的应用服务器上,如 tomcat,weblogic。
WebService则需要有WSDL文件来部署服务,或者使用UDDI注册。
区别5:跨平台性
Servlet依赖于Java平台。
WebService是跨平台的,无论什么在什么平台使用什么语言开发的Web Service,其他平台上的任何语言都能调用。
WebService优势:
1.平台无关性 。 任何平台都可以使用WebService
2.编程语言无关系。 基于XML,XML本身与平台无关,使用XSD作为数据类型系统,不论用什么语言编写,所有数据类型都会被转换为XSD,只需要遵守WebService的统一标准即可。
3.部署、升级和维护Web服务简单、方便。
4.实现多数据、多服务的聚合。
5.成本低。
6.不受防火墙的影响。使用SOAP协议通信,封装了XML格式的数据,以ASCII文本的方式传输,而非二进制,调试方便,而且可以使数据容易的通过防火墙,不需要单独开通信端口