HTTP伺服器、Servlet容器、Tomcat
阿新 • • 發佈:2021-01-15
技術標籤:Java
這個Servlet不陌生吧,但是我從來不知道它到底是個啥,直到某天,看了這個→從 Servlet 入手帶你看架構和框架設計的套路。
public class MyServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
super.doGet(req, resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
super.doPost(req, resp);
}
}
開搞!
1、正文
在早期,瀏覽器發起 HTTP 請求只是為了請求靜態資源,用來處理 HTTP 請求並將相應的靜態資源返回的程式或者叫伺服器的東西,這個東西就是HTTP伺服器。
HTTP伺服器的作用就是在於解析http請求,找到相應的靜態檔案並返回。
但是隨著網際網路發展,單純的靜態檔案已經滿足不了業務需求了。需要滿足不同請求呼叫不同業務邏輯來進行響應,但是又不能在 HTTP伺服器寫上業務程式碼與非業務程式碼,所以我們需要進行一個抽象。
但是HTTP伺服器是怎麼知道它傳給的是個啥東西,所以出現一個介面,也就是Servlet了,用來規範標準。
Servlet :Server Applet,全稱 Java Servlet,指的是用Java 編寫的服務端程式,每一個Servlet就是一個可以用來處理業務的程式。
同時還有一個Servlet 容器,來管理和載入Servlet 類,根據http請求來找到相應的servlet。
於是便有了下面的流程:
在servlet和Servlet容器之間的關係,由web.xml
來儲存。
Web伺服器==HTTP伺服器+Servlet伺服器,像Tomcta和Jetty就包含了HTTP伺服器和Tomcat伺服器,所以它們也就是Web伺服器。
2、框架設計套路
以下的情況估計沒少見,框架一般使用介面+抽象類的方式。
介面: 用來約定一個固定的方法
抽象類: 實現以上介面,並實現部分通用的程式邏輯,做到程式碼的複用
實現類: 實現一些常用類,剩餘一部分留給開發者自行擴充套件