1. 程式人生 > >servlet 和 socket區別

servlet 和 socket區別

通常我們會說"socket連線",也就是說socket是指明兩個地址的連線通訊方式.和socket關聯的東西大多是伺服器,客戶端,TCP,UDP,位元組流之類的. socket 需要自己建立連線,分析構造輸入輸出電文。

而servlet我們會說使用"servlet技術"或"servlet方式",也就是伺服器響應客戶端的方式,與servlet關聯的東西大多是web伺服器,瀏覽器,jsp,asp,asp.net等.  到servlet時,已經轉換成物件了。屬於應用層的東西。

Socket是j2se在網路程式設計這塊最基本的東西。把一系列網路io複雜性封裝。但是光有io,光能傳輸資料,不足以完成標準化的網路通訊。所以在這個基礎上,加入了協議支援。比如web容器(tomcat等)

加入了http協議的解析(所謂的協議,就是一系列帶有標準格式的字串)。而把裡面可以獨立給程式設計師的模型介面抽取出來,就是Servlet。所以,Servlet可以看做是web容器執行的一部分邏輯(請求和響應,即request和response其實可以看成是dto,最後執行完servlet.service方法後,由容器傳遞給socket類的outputstream,完成相關操作)。而Socket則是web容器的核心(負責交換協議)。