Orangutan的博客

做个低调的程序猿

Web Service和Servlet的区别

Servlet是Java对于Web开发而产生的一项技术,可以说Servlet技术是Java专有的,它是服务器端的技术,客户端通常是浏览器,    
  而WebService是在DCOM   CORBA等分布式技术之后发展起来的。WebService有一个国际通用的标准SOAP。具体规范发布在   http://www.w3.org/TR/SOAP/  
   
  SOAP是为了在Internet   环境下,实现系统是松散耦合的、跨平台的,与语言无关的,与特定接口无关的,而且要提供对Web   应用程序的可靠访问。   
    
  几乎所有的开发工具都可以开发WebService系统,包括Java,C#,甚至基于VCL架构的Delphi。而且   所开发出来的WebService系统,可以方便的被各种客户端调用,包括,浏览器,W32应用程序,还有Java   App。  
   
  可以这么说,开发一个WebService系统,把它放到互联网上,生成一个WebService描述文件.wsdl(非常容易),全世界的任何人,使用几乎任何开发工具,引用了这个wsdl,就像引用了一个动态库的头文件一样,方便的调用你的WebService接口,就像调用本地的方法一样。 

综上所述: 

  1、WebService通常是基于http的远程方法调用(RMI),号称是可以反回远程对象,    一般来说客户段可以象调用本地方法一样调用WebService的方法。   
  2、WebService使用的SOAP是一种通用的格式,不管什么样的客户端都可以。  
  3、如果你用Servlet返回XML,那个XML的描述框架就是你定的喽?你能确保别人都能看明白你的XML格式含义?  
  4、WebService并不复杂,开发起来甚至比Servlet还简单。  
  5、如果客户段需要传递一个复杂的多维数组给服务端,Servlet怎么办?  
  6。webservice的优点在于可以传递对象(其实是结构化的数据),从而对异构系统来说更有优势 
  其实最重点要的,是WebService的方法返回消息是有标准的(大家通用,谁都能看懂),如果用Servlet所返回XML,是没有标准的 

在我们的项目中,一个java web项目要使用另一个java web的方法,这时可以选择servlet和webservice方法,我们使用servlet方法,使用httpclient访问,地址为http://ip/servlet/servletname 访问成功。 
关于如何返回数据,out对象输出即可
 

servlet到是也可以传对象 只要能序列化 

其实 servlet和webservice不是一个层次上的东西 不可比 
servlet定义的是一套interface 
目的是实现 java在web上的动态访问(不知局限于http协议的 至少还有ftp协议) 

webservice定义的是一套标准(SOAP/UDDI/WSDL... 比API更抽象),与语言无关 协议无关 平台无关 
目的是实现基于service的组件(相对于EJB DCOM ....) 
从webservice的目的不难看出 他的复杂度还是相当大的 (EJB需要考虑的他都要进行实现) 包括安全性 事务性 等等.... 远不止上面列出的SOAP/UDDI/WSDL
阅读更多
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭