什麼是servlet?(簡介、工作流程、servlet容器工作流程)
servlet工作流程:
servlet容器(tomcat)整體的工作流程:
servlet的核心api以及體系結構?
genericservlet抽象類:
httpservlet抽象類:
servletrequest介面:
httpservletrequest介面:
方法:
getcontextpath
() —— 返回客戶端請求方法的web應用的url入口,如客戶端訪問的url為http:
//localhost:
8080
/hello/info,那麼該方法返回「/hello」;
getcookies
() —— 返回http請求中的所有cookie;
getheader
(string name) —— 返回http請求頭部的特定項;
getheadername
() —— 返回乙個enumeration物件,它包含了http請求頭部的所有專案名;
getmethod
() —— 返回http請求方式;
getrequesturl
() —— 返回http請求的頭部的第一行中的url;
getquerystring
() —— 返回http請求中的查詢字串,即url中的「?」後面的內容;
servletresponse介面:
httpservletresponse介面:
方法:
addheader
() —— 向http響應頭中加入一項內容
senderror
() —— 向客戶端傳送乙個代表特定錯誤的http響應狀態**
setheader
() —— 設定http響應頭中的一項內容,如果在響應頭中已經存在這項內容,則原來的設定被覆蓋
setstatus
() —— 設定http響應的狀態**
addcookie
() —— 向http響應中加入乙個cookie
servletconfig介面:
servletcontext介面:
servlet的生命週期?
會經過建立 、初始化、服務可用、服務不可用、處理請求、終止服務、銷毀等其中狀態
按照七種狀態生命週期可以分為四個階段:
載入和例項化
在伺服器執行中,客戶機首次向servlet發出請求時
重新裝入servlet時(如伺服器重新啟動、servlet被修改)
在為servlet配置了load-on-startup時,伺服器在啟動時自動裝入此servlet
初始化
servlet例項化後,servlet呼叫servlet的init(servletconfig config)方法對servlet進行初始化。此過程可以讀取一些固定地資料、初始化jdbc的連線以及建立與其他資源的連線等操作。init()的方法引數servletconfig物件由servlet的容器建立並傳遞給servlet,並在初始化完成後一直在記憶體中存在,直到servlet被銷毀。
處理請求
伺服器接收到客戶端的請求後,會為該請求建立乙個「請求」物件和乙個「響應」物件並呼叫service()方法,service()方法會在呼叫其他方法處理請求。servlet的生命週期中,service()方法可能被多次呼叫,當多個客戶端同時訪問某個servlet的service()方法時,伺服器會為每個請求建立乙個執行緒,這樣可以並行處理多個請求,減少處理的等待時間,提高響應速度,但是也會導致對同一物件的併發訪問問題。
銷毀 當servlet容器需要終止servlet(如web伺服器即將被關掉或需要讓出資源),它會呼叫servlet的destroy()方法使其釋放正在使用的資源
實現乙個簡單的servlet容器:
採用mvc框架的實現中,其基本原理是將所有的請求都對映到乙個servlet,然後去實現servie方法,這個方法也就是mvc框架的入口。
實現乙個簡單的servlet容器,原始碼見:簡易tomcat
Servlet基礎知識
servlet必須繼承httpservlet類,每個servlet可以響應客戶端的請求 大部分時候,servlet對於所有請求的響應都一樣,此時,可以採用重寫service 方法響應客戶端所有請求。另外httpservlet還包含兩個方法 從servlet3.0開始,配置servlet有兩種方式 1...
servlet基礎知識
step1 使用字尾匹配模式。step2 在service 方法裡加入如下 獲得請求資源路徑 string uri request.getrequesturi 所謂生命週期,指的是servlet容器如何建立servlet例項 分配其資源 呼叫其方法 並銷毀其實例的整個過程。階段一 例項化 就是建立s...
Servlet 基礎知識
4.2 listener 前置知識 http 相關知識 執行在 web 伺服器或應用伺服器的程式,用作連線 web 瀏覽器 其他客戶端的 http 請求和資料庫的中間處理層。init servletconfig config 初始化 service servletrequest req,servle...