回覆列表
  • 1 # IT人劉俊明

    Servlet是Java Web的核心概念,理解Servlet對理解Java Web程式設計是至關重要的。要清楚Servlet的執行機制,首先要了解Servlet容器與Servlet之間的關係。當然,要讓大家清楚的認識Servlet,有必要給大家呈現一個完整的Servlet圖譜。

    什麼是Servlet

    要清楚Servlet的功能,我們首先要看一下Servlet的官方定義是怎麼描述Servlet的。

    簡單的概括一下Servlet:

    一個執行在伺服器端的Java元件。

    功能與CGI類似,但是執行環境卻大不相同。

    Servlet能處理使用者的請求並動態生成迴應。

    Web Container是一個管理Servlet生命週期的特殊Java虛擬機器,能以執行緒的方式處理請求。

    這幾點關於Servlet的定義中,需要著重描述的是第二點和第四點。第二點提到了CGI,CGI是動態Web的標準處理模式,是里程碑式的技術結構(緬懷一下),為了簡單的描述一下CGI,我們看一下CGI的處理結構。

    透過這個結構我們清楚了CGI的功能,其實Servlet在功能上與CGI是類似的。

    Servlet定義的第四點是Servlet能以執行緒的方式處理請求,而這正是Servlet壓倒CGI的重要原因,我們看一下Servlet處理請求的方式:

    圖中清晰的描述了執行緒的處理方式,大家都知道Java在Web處理上有較大的效能優勢,一個重要的原因是Servlet是以執行緒的方式處理請求的。

    Servlet在整個Java Web解決方案中充當了核心的角色,也就是控制器角色。控制器是所有請求的入口,就像人類的大腦一樣負責協調全身的各種功能,讓這些功能能成為一個有機的整體。我們看一下Java Web中經常出現的MVC結構圖:

    圖中除了描述Servlet外還描述了另外兩個核心元件:JSP和JavaBean。

    這個結構是後續很多內容的起點,比如為了提高Web容器處理JavaBean的能力,出現了官方的EJB技術,也出現了Spring的非官方技術,但是Spring卻被廣大程式設計師熱捧,關於SpringMVC的內容將在以後的文章中跟大家陸續分享。

    容器如何驅動Servlet

    在瞭解容器如何驅動Servlet之前,我們首先看一下容器的官方定義:

    簡單的說,容器提供了Servlet的執行環境,提供了Servlet API的實現。為了描述Web容器如何驅動Servlet,我們看一下具體的處理過程:

    首先,請求到達伺服器:

    接著容器建立request和response物件:

    接著呼叫service方法處理使用者的請求(需要request和response作為引數):

    最後向客戶端返回結果:

    這個過程主要就是容器驅動Servlet的過程,當然容器還管理著Servlet的生命週期,包括建立、執行、回收以及執行過程中所產生的各種事件。

    希望透過這篇文章能讓大家對Servlet以及容器如何為Servlet執行提供服務有一個大致的瞭解,Servlet還有很多細節內容,在後續的文章中陸續跟大家分享。

  • 2 # X567

    這個問題,如果瞭解技術尤其是 j2ee是很好回答的;

    Servlet容器提供的環境是支援 servlet api執行的一組java類實現,api是一組介面,需要一個底層實現類讓這些介面可以執行,這個底層就是這個所謂的執行環境,當然也會附加一些 管理、安全之類的附加功能,但 servlet規範沒要求。

  • 3 # 成都朗沃教育

    Servlet如果,沒有Servlet容器給它提供環境,它就執行不起來。就像沒有現在地球的這個環境給你提供氧氣一樣

    你看上面這個Servlet,它莫名其妙就有request和response了,如果不是環境給它的,它哪來的?把這個Servlet換個環境,不給它request和response了,你說他還能跑麼。當然了,request和response只是環境提供的很小的一部分,

  • 中秋節和大豐收的關聯?
  • 想找個副業,賺點生活費,有沒有手機就能完成的?