Servelt與WebService的異同

2021-09-01 05:21:22 字數 1081 閱讀 2848

servelt與webservice的異同:   

請求:   

客戶端訪問乙個伺服器的url,只需要傳送簡單的httprequest即可。   

但servlet只能接受乙個簡單的http請求;   

而webservice是可以傳送乙個xml作為其請求內容。   

傳輸:   

servlet使用http協議傳輸資料。   

ws使用固定的xml格式封裝成soap訊息,可以使用http作為底層資料傳輸,但並不侷限於http協議。   

返回結果:   

servlet返回的是html頁面;   

ws返回的可以是複雜物件甚至使用附件或者mutidata的2進製檔案。   

部署:   

webservice則需要有wsdl檔案來部署服務,或者使用uddi註冊。   

優勢:   

webservice的跨平台特性是servlet不能比的;   

而servlet相對來說速度上的優勢也是不可忽視的。   

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訊息。

servelt亂碼問題

之所以會產生亂碼,是由於伺服器端和客戶端的編碼方式不一致造成的。客戶端與伺服器端的互動過程中,存在著兩次資料交換 第一次,客戶端向伺服器端發起請求,第二次資料交換,伺服器端響應客戶端的請求後做出應答,將處理結果返回給客戶端。前提了解,無論伺服器端是在接受資料還是在返回資料時,如果不指定其資料編碼格式...

用python客戶端去訪問webservice

在前幾篇文章裡面我重點用python去發布乙個webservice。我用的是soaplib庫。發布以後確實可以通過php來訪問,也可以通過python訪問,通過php訪問的話還好。但是通過python訪問的時候必須知道服務端的 這一點從官方給出的demo可以看出,這就比較煩人。所以我改用另外的乙個p...

18 webserv 流socket的應用

1 伺服器設計 學習了網路程式設計的基本操作和設計原則,建立乙個web伺服器,這是乙個典型的socket流的客戶端 伺服器系統。伺服器設立服務,然後進入迴圈接收和處理請求。客戶端連線到伺服器,然後傳送 接收或者交換資料,最後退出。該互動過程主要包含3個操作 2 建立伺服器socket 設立乙個服務一...