使用eclipse創建servlet的時候,它會默認在web.xml下配置,url-pattern默認是/servlet類名
Servlet運行在服務端的Java小程序,是sun公司提供一套規範(接口),用來處理客戶端請求、響應給瀏覽器的動態資源。但servlet的實質就是java代碼,通過java的API 動態的向客戶端輸出內容
servlet規範:包含三個技術點
1)servlet技術
2)filter技術---過濾器
3)listener技術---監聽器
創建servlet的時候,如果出現這個問題,
說明沒有導入servlet包,可以去tomcat下找,然後導入,還可以
之後就可以導包了
創建一個servlet
實現步驟:
1)創建類實現Servlet接口
2)覆蓋尚未實現的方法---service方法
3)在web.xml進行servlet的配置
光創建沒有用,還需要在web。xml配置一下
servlet-name為給這個這個servlet起個名字一般用原名稱比較好,servlet為類全名包含包,url為映射路徑,寫好之後我們就可以通過http://localhost:8080/WWW/abc來訪問了
結果輸出first
Servlet的生命週期
1Servlet何時創建
服務器開啟之後,默認第一次訪問servlet時自動創建該對象
2Servlet何時銷燬
服務器關閉servlet就銷燬了
每次訪問必然執行的方法
service(ServletRequest req, ServletResponse res)方法
Servlet接口中的方法
1 init(ServletConfig config)
何時執行:servlet對象創建的時候執行
ServletConfig :代表的是該servlet對象的配置信息
2 service(ServletRequest request,ServletResponse response)
何時執行:每次請求都會執行
ServletRequest :代表請求 認為ServletRequest 內部封裝的是http請求的信息
ServletResponse :代表響應 認為要封裝的是響應的信息
3 destroy()
何時執行:servlet銷燬的時候執行
init的參數config能獲取到什麼?
初始化參數我們可以在web.xml配置servlet的時候頁配置一些參數
servlet的執行過程
Servlet的配置
前面我們已經知道了servlet的基本配置,其實他還有其它標籤可以使用,還有其它配置可以操作,這裡總結一下
基本配置
在基本配置中url的配置信息也有多種
還有一點就是第二種配置和第三種配置不能一起用/a/b/*.abc(錯誤的)
還有一個標籤是
配置好之後,只要一啟動,就自動創建QuickStratServlet對象了,不會等到訪問資源的時候才會創建,還有一個問題是標籤的位置不能隨便寫,
缺省配置
web應用中所有的資源的響應都是servlet負責,包括靜態資源,也就是說瀏覽器輸入一個資源,都會按照servlet去尋找,如果他是一個servlet,那麼將很方便的找到,如果它不是一個servlet,那麼在apache的web。xml(它管理所有的web應用)有以下配置
這個配置的大概意思就是說如果他不是servlet,則再去webContent下去尋找對應的文件
那麼配置缺省有什麼用呢?
就是說當所有servlet都不匹配時 , 缺省的servlet負責處理,可以將url-pattern配置一個/,代表該servlet是缺省的servlet
那麼以後我們訪問資源的時候,如果找不到對應的servlet,則就會訪問這個缺省的所對應的servlet
舉例就是當我們訪問http://localhost:8080/WWW/1.html雖然1.html存在,但是並沒有1.html對應的servlet所以此時這個缺省的會起作用,訪問這個缺省對應的servlet,如果沒有配置缺省,那麼apache下的web。xml會起作用
會去webContent下去尋找對應的文件1.html,所以缺省配置完成之後,只有servlet可以順利訪問,靜態資源訪問不會順利,總結就是每個項目下的web。xml為主,apache下的xml為輔
閱讀更多 幻風的編程日記 的文章