1. 程式人生 > 其它 >HTTP伺服器、Servlet容器、Tomcat

HTTP伺服器、Servlet容器、Tomcat

技術標籤: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、框架設計套路

以下的情況估計沒少見,框架一般使用介面+抽象類的方式。

介面: 用來約定一個固定的方法

抽象類: 實現以上介面,並實現部分通用的程式邏輯,做到程式碼的複用

實現類: 實現一些常用類,剩餘一部分留給開發者自行擴充套件