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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM