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

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
---------------------