Servlet是一段Java代碼,可以擴展Web服務器的功能。每個Servlet都運行在一進程中,一個新的對Servlet的請求都作為一個線程在Servlet進程中運行。
Servlet容器負責連接Web服務器和Servlet進程。Servlet負責提供Servlet的運行時環境,並且在恰當的時候加載和調用這些Servlet。Servlet容器可以和Web服務器運行在同一個進程能夠,也可以單獨運行在一個進程中。甚至有的Servlet容器本身也就是Web服務器,比如Tomcat。
Servlet容器將用戶的請求傳遞給Servlet,然後將Servlet的回應轉換成http應答消息返回給客戶。
每個Servlet進程都擁有一個Servlet Context。這個Servlet Context就對應一個Web應用程序。Servlet Context關聯一個url路徑前綴。
通常Servlet接收到Servlet容器傳遞來的客戶的請求以後,進行一些業務邏輯的處理,然後將html代碼寫出到響應流中。但是這樣的做法使得業務邏輯和WEB的UI混在一起,既難以維護,有使得程序員和WEB設計師的工作無法分開進行。