標籤:des style blog java http ext
一、什麼是Servlet?
Servlet是運行Web伺服器上的一個特殊Java類,其特殊用途是響應用戶端請求並做出處理,使得用戶端與伺服器端進行互動。
二、生命週期
Servlet生命週期是通過Web容器控制,主要分為以下幾個階段:
- 建立servlet的執行個體
- 初始化階段,調用init()方法
- 響應請求,調用service()方法
- 銷毀執行個體,調用destroy()方法
- 執行個體記憶體回收,調用finalize()方法
三、Servlet中幾個重要的方法:
在Servlet生命週期中,servlet的初始化(init())和銷毀階段(destroy())只執行一次。Servic()方法是servlet的核心,主要是用來接收用戶端請求並返回結果給用戶端,每次用戶端請求過來都被調用Service()方法,並且傳遞個這個方法一個“請求(servletRequest)對象和一個響應(servletResponse)對象做為參數”。
doGet()方法
當接收到Get請求時,Servlet的doGet()方法被調用。與GET 請求相關的參數添加到URL的後面,並與這個請求一起發送。當不會修改伺服器端的資料時,應該使用doGet()方法。
doPost()方法
當接收到Post請求時,Servlet的doPost()方法被調用。與POST請求相關的參數作為一個單獨的HTTP 要求從瀏覽器發送到伺服器。當需要修改伺服器端的資料時,應該使用doPost()方法。
四、Servlet中的類:
ServletRequest 和ServletReponse在用戶端請求過來的時候,調用Servlet時傳遞過來的。事實上,我們在建立Servlet類時通常使用的是HttpServletRequest和HttpServletReponse。他們分別代表從用戶端而來的Http請求和處理請求的響應結果
ServletConfig:從圖上可以看出,當初始化一個Servlet對象時,就會為這個對象建立一個ServletConfig對象,在ServletConfig對象中包含了Servlet初始化參數資訊。此外,Servlet容器在調用servlet對象的init(servletconfig)方法時,會把servletConfig對象當做參數進行傳遞給Servlet。
ServletConfig介面提供方法,該方法返回:servlet名、Servlet上下文,初始化參數
ServletContext:是Servlet和Servlet容器之間進行通訊的介面,其原理看:
ServletContext存在於Web應用當中,當啟動一個Web應用時,會自動建立一個ServletContext對象。每一個Web應用對應一個ServletContext對象。在Web應用當中可以存放Servlet或JSP。ServletContext提供全域訪問,即所有的對象可以共用一個ServletContext。Servlet對象可以通過getServletContext()方法訪問和操作容器中的各種資源。
ServletConfig 與 ServletContext的區別:
1.作用範圍:ServletContext作用於整個Web應用(相當於全域變數)ServletConfig作用於某個特定的Servlet對象,其他的Servlet不能訪問。(相當於局部變數)
2.參數的訪問:ServletContext包含在ServletConfig中,在訪問ServletContext時先調用ServletConfig中的getServletConfig()方法,得到裡面的getServletContext()方法,然後再調用getInitParameter()方法就可以擷取它的參數。
訪問ServletConfig參數,只需要調用getServletConfig()方法,然後調用getInitParameter()方法即可。
總結:Servlet技術是JSP技術的基礎,都是一種伺服器端技術,是一種用戶端與伺服器端之間互動的體現。Servlet的核心是Service()方法,Service()方法將請求指派到doGest(),doPost()處理。