Servlet 詳解

JavaWeb核心之Servletjava

1、Servlet簡介

1.什麼是Servlet Servlet 運行在服務端的Java小程序,是sun公司提供一套規範(接口),用來處理客戶端請求、響應給瀏覽器的動態資源。但servlet的實質就是java代碼,經過java的API 動態的向客戶端輸出內容web

servlet規範:包含三個技術點 1)servlet技術 2)filter技術---過濾器 3)listener技術---監聽器面試

2.Servlet快速入門 實現步驟: 1)建立類實現Servlet接口 2)覆蓋還沒有實現的方法---service方法 3)在web.xml進行servlet的配置小程序

但在實際開發中,咱們不會直接去實現Servlet接口,由於那樣須要覆蓋的方法太多, 咱們通常建立類繼承HttpServlet 實現步驟: 1)建立類繼承HttpServlet類 2)覆蓋doGet和doPost 3)在web.xml中進行servlet的配置瀏覽器

畫圖描述整個訪問過程:服務器

輸入圖片說明

2、Servlet的API(生命週期)

(1)Servlet接口中的方法 1)init(ServletConfig config) 什麼時候執行:servlet對象建立的時候執行 ServletConfig : 表明的是該servlet對象的配置信息this

2)service(ServletRequest request,ServletResponse response) 什麼時候執行:每次請求都會執行 ServletRequest :表明請求 認爲ServletRequest 內部封裝的是 http請求的信息 ServletResponse :表明響應 認爲要封裝的是響應的信息url

3)destroy() 什麼時候執行:servlet銷燬的時候執行xml

(2)HttpServlet類的方法 1)init() 2)doGet(HttpServletRequest request,HttpServletResponse response) 3)doPost(HttpServletRequest request,HttpServletResponse response) 4)destroy()對象

(3)Servlet的生命週期(面試題) 1)Servlet什麼時候建立 默認第一次訪問servlet時建立該對象

2)Servlet什麼時候銷燬 服務器關閉servlet就銷燬了

3)每次訪問必然執行的方法 service(ServletRequest req, ServletResponse res)方法

問題:對XXXServlet進行了10次訪問,init(),destory(),service(),doGet(),doPost() 一共執行力多少次?request對象建立幾個?response建立幾個?

3、Servlet的配置

1.基本配置

其中url-pattern的配置方式: 1)徹底匹配 訪問的資源與配置的資源徹底相同才能訪問到 2)目錄匹配 格式:/虛擬的目錄../* 表明任意 3)擴展名匹配 格式:.擴展名

注意:第二種與第三種不要混用 /aaa/bbb/*.abcd(錯誤的)

2.服務器啓動實例化Servlet配置 Servlet的什麼時候建立:默認第一次訪問時建立 爲何是默認? 當在servlet的配置時 加上一個配置 <load-on-startup> servlet對象在服務器啓動 時就建立 3.缺省Servlet 能夠將url-pattern配置一個/,表明該servlet是缺省的servlet 什麼是缺省的servlet? 當你訪問資源地址全部的servlet都不匹配時 , 缺省的servlet負責處理

其實,web應用中全部的資源的響應都是servlet負責,包括靜態資源

4.歡迎頁面

4、ServletContext對象

1.什麼是ServletContext對象 ServletContext表明是一個web應用的環境(上下文)對象,ServletContext對象 內部封裝是該web應用的信息,ServletContext對象一個web應用只有一個

問題:一個web應用有幾個servlet對象?----多個

ServletContext對象的生命週期? 建立:該web應用被加載(服務器啓動或發佈web應用(前提,服務器啓動狀 態)) 銷燬:web應用被卸載(服務器關閉,移除該web應用)

2.怎樣得到ServletContext對象 1)ServletContext servletContext = config.getServletContext(); 2)ServletContext servletContext = this.getServletContext();

3.ServletContext的做用 (1)得到web應用全局的初始化參數 web.xml中配置初始化參數

經過context對象得到參數

(2)得到web應用中任何資源的絕對路徑(重要 重要 重要) 方法:String path = context.getRealPath(相對於該web應用的相對地址);

(3)ServletContext是一個域對象(重要 重要 重要) 什麼是域對象?什麼是域? 存儲數據的區域就是域對象

ServletContext域對象的做用範圍:整個web應(全部的web資源均可以隨意向 servletcontext域中存取數據,數據能夠共享)

域對象的通用的方法: setAtrribute(String name,Object obj); getAttribute(String name); removeAttribute(String name);

相關文章
相關標籤/搜索