1. 程式人生 > >Web Service和Servlet的區別

Web Service和Servlet的區別

範圍 quest post rmi 產生 detail clas 系統 body

沒接觸過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

Web Service和Servlet的區別