Servlet與WebService關係

來源:互聯網
上載者:User

其實從實現的效果上,它們是很相似的  
   
  相同點:  
  用戶端訪問一個伺服器的url,然後得到返回結果。  
  我們使用的servlet是基於   http的請求接聽模式的  
  大部分WebService低層也使用http作為實現。  
   
  用戶端方面,  
  2者都不局限,只要是能夠發送http請求的用戶端,可是是普通application可以是瀏覽器,可是j2me,jese平台甚至是其他語言的任何形式的用戶端。這一點是由http協議的特點決定的。  
   
   
  區別:  
  但是servlet只能接受一個簡單的http請求,而WebService是發送一個xml作為其請求內容。  
  作為返回結果,servlet是html頁面,而ws可以是複雜物件甚至使用附件或者mutidata的2進位檔案。  
   
  伺服器方面不要一樣,前者需要遵守j2ee的Web   Application規範部署在tomcat,weblogic這樣的應用伺服器上。WebService則需要有WSDL檔案來部署服務,或者使用UDDI註冊。  
   
   
  其實一開始我看到這個標題就覺得兩者根本就是不相干的,怎麼能比呢。  
  這下一分析,因為他們底層的http實現讓他們真的很相似。  
  WebService的跨平台特性是servlet不能比的  
  而servlet相對來說速度上的優勢也是不可忽視的。  
  Top

2 樓gstart(Hawk)回複於 2005-08-08 17:05:38 得分 0

我在本版問了個ejb和web   service的問題,都沒有人理會.樓上這位仁兄對servlet和web   service的區別講的很好,順便也講一下ejb和web   service吧,   我覺得web   service   用來代替無狀態會話bean是個不錯的主意呢.   web   service好像可以部署在tomcat上吧,ejb對運行環境要求則比較苛刻了.  
   
  樓上的高手能否指點一下   ejb和web   service   分別用在什麼場合比較合適Top

3 樓layueer(愛傷懷,努力升仙)回複於 2005-08-08 17:30:40 得分 0

強頂Top

4 樓jFresH_MaN(十一月的蕭邦-夜曲)回複於 2005-08-08 19:15:06 得分 0

其實我還不會ejb呢,因為我不喜歡ejb這麼累贅的東西。  
  但是WebService在效率上也是不好的,但是它是在xml的應用之上,那麼必然平台無關語言無關,這是我最喜歡它的地方。  
  Tomcat裡面可以使用axis(apache的一個ws項目)部署ws,比較簡單。Top

5 樓launch401(烏蘭巴托的夜 那麼靜 那麼靜)回複於 2005-08-09 10:02:35 得分 0

按照JAX-RPC,servlet和stateless   session   bean都可以封裝成webservices伺服器端組件,分別運行在servlet容器和ejb容器中,實際上可以當作是特殊的servlet和ejb。  
   
  只不過用soap傳輸,而不是用http傳輸。Top

6 樓jFresH_MaN(十一月的蕭邦-夜曲)回複於 2005-08-09 10:05:43 得分 0

只不過用soap傳輸,而不是用http傳輸。  
  ---------  
  soap傳輸的底層實現就是http的請求,soap實際上是使用其固定的xml格式封裝了請求資訊罷了Top

7 樓Adamyong(阿永)回複於 2005-08-12 00:31:33 得分 5

基本上比較同意jFresH_MaN的觀點。soap只是封裝訊息,它和傳輸沒有關係。在使用soap時我們要通過傳輸協議完成,當然用的最多的就是http了。在   soap   spec   中並不限定你使用什麼傳輸協議。  
      為了說明servlet和web   service的區別,我大致描述一下axis的實現吧。當一個帶有soap訊息的http請求傳輸到axis時,AxisServlet的doPost方法相應該請求。我們的請求往往是http://localhost:8080/axis/services/ServiceName,按照axis的預設的部署方式,通過http://localhost:8080/axis/services定位到AxisServlet,AxisServlet繼承自HttpServlet,然後通過解析ServiceName定位到請求的是哪一個服務,這些都是axis實現好的。部署的服務你可這樣理解:動態綁定到axis上的一些模組。  
  。然後Axis通過自己的一系列handler解析http帶的soap訊息,當然你可以實現自己的handler。通過解析soap訊息取得調用的是哪一個方法,然後由soap中的訊息值調用該方法,如果方法是Req-Res方式還要構建返回Soap訊息。Top

8 樓layueer(愛傷懷,努力升仙)回複於 2005-08-12 09:23:59 得分 0

學習Top

9 樓dddddy(隨遇而安)回複於 2005-08-12 18:25:05 得分 0

這個貼子該加入精華了。Top

10 樓dianweihu(忘了)回複於 2005-08-26 12:52:23 得分 0

總結一下(請指正):  
   
  Servelt與WebService的異同:  
   
  請求:  
  用戶端訪問一個伺服器的url,只需要發送簡單的httprequest即可。  
  但servlet只能接受一個簡單的http請求;  
  而WebService是可以發送一個xml作為其請求內容。  
   
  傳輸:  
  servlet使用http協議傳輸資料。  
  ws使用固定的XML格式封裝成soap訊息,可以使用http作為底層資料轉送,但並不局限於http協議。  
   
  返回結果:  
  servlet返回的是html頁面;  
  ws返回的可以是複雜物件甚至使用附件或者mutidata的2進位檔案。  
   
  部署:  
  servlet需要遵守j2ee的Web   Application規範部署的應用伺服器上,如tomcat,weblogic,websphere;  
  WebService則需要有WSDL檔案來部署服務,或者使用UDDI註冊。  
   
  優勢:  
  WebService的跨平台特性是servlet不能比的;  
  而servlet相對來說速度上的優勢也是不可忽視的。  
   
  Top

11 樓simon0512(蟲蟲)回複於 2005-08-27 00:13:35 得分 0

學習  
  Top

12 樓gaoan(流浪花---不遷怒,不二過.)回複於 2005-08-27 00:38:26 得分 0

學習,  
   
  對web   service   沒經驗...Top

13 樓ytcx_lt_82(仰天長嘯)回複於 2005-09-01 19:49:49 得分 0

頂啊!受益非淺啊!Top

14 樓metaphy(六千尺外的查拉圖斯特拉)回複於 2005-09-05 09:50:55 得分 0

優勢:  
  WebService的跨平台特性是servlet不能比的;  
  而servlet相對來說速度上的優勢也是不可忽視的。  
  ------------------------------------------------  
  不解,這個"跨平台"是什麼意思?  
  是說用xml   格式的資料的跨平台?  
  不過不論從哪裡來看,WebService   好像並沒有多麼大的優勢  
  Top

15 樓kingofhawks(藍鷹)回複於 2005-09-06 11:57:44 得分 0

呵呵,學習一下不知道的東西.Top

16 樓dianweihu(忘了)回複於 2005-09-07 09:17:03 得分 0

跨平台  
  與具體的開發平台無關  
  Servlet必須依賴於java平台  
  而WS在任何平台下都可以做的,只要符合其描述規範就ok了Top

17 樓irvine007(┣━┫Rvine)回複於 2005-09-07 20:56:46 得分 0

頂~~  
  Top

18 樓sqlink()回複於 2005-09-07 21:36:23 得分 5

servlet除了可以處理web   service之外,還能處理標準的HTML。  
  不過web   service作為rich   client的通訊手段其效率實在是太低了,不過相容性到非常的好

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.