Servlet詳解 1.servlet簡單介紹 servlet是javaweb三大組件之一,他與filter ,listener 共同組成了javaweb的三大組件,Servlet(Server Applet)是Java Servlet的簡稱,解釋為運行在伺服器端的java小程式, 作用:用來接收客 ...
Servlet詳解
1.servlet簡單介紹
servlet是javaweb三大組件之一,他與filter ,listener 共同組成了javaweb的三大組件,Servlet(Server Applet)是Java Servlet的簡稱,解釋為運行在伺服器端的java小程式,
作用:用來接收客戶端的請求,處理業務邏輯,響應動態內容
2.使用
創建一個java類,實現Servlet介面,重寫抽象方法
1 public class MyServlet implements Servlet { 2 /** 3 * Servlet初始化的時候執行 4 */ 5 @Override 6 public void init(ServletConfig config) throws ServletException { 7 // TODO Auto-generated method stub 8 9 } 10 /** 11 *請求來的時候執行 12 */ 13 @Override 14 public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException { 15 // TODO Auto-generated method stub 16 17 } 18 /** 19 * Servlet銷毀的時候執行 20 */ 21 @Override 22 public void destroy() { 23 // TODO Auto-generated method stub 24 25 } 26 27 @Override 28 public String getServletInfo() { 29 // TODO Auto-generated method stub 30 return null; 31 } 32 @Override 33 public ServletConfig getServletConfig() { 34 // TODO Auto-generated method stub 35 return null; 36 } 37 38 }
3.Servlet的生命周期(Servlet對象是單例的)
創建:預設情況下,當請求來的時候,伺服器會檢查該類的對象有沒有被創建,如果沒有創建,伺服器會反射創建該類的對象,並且調用init方法完成初始化的操作,然後調用serivce 方法完成相應的業務邏輯
服務:請求來一次就服務一次
銷毀:當伺服器正常關閉或者項目卸載的時候會銷毀該Serlvet對象
1 /** 2 * Servlet初始化的時候執行 3 * 執行時機:預設情況下,當你去請求伺服器的時候,伺服器會檢查有沒有該Servlet對象, 4 * 如果沒有,就會反射創建該類對象,並執行init方法完成初始化操作,緊接著調用 5 * service方法完成服務 6 * 執行次數:1次 7 */ 8 @Override 9 public void init(ServletConfig config) throws ServletException { 10 // TODO Auto-generated method stub 11 12 } 13 /** 14 *服務: 15 *執行時機:請求一次執行一次 16 *執行次數:多次 17 * 18 */ 19 @Override 20 public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException { 21 // TODO Auto-generated method stub 22 23 } 24 /** 25 *銷毀 26 *執行時機:伺服器關閉或者是項目卸載的時候,會調用該方法 27 *執行次數:1次 28 */ 29 @Override 30 public void destroy() { 31 // TODO Auto-generated method stub 32 33 }
4.Servlet在web.xml中的配置詳解
圖解配置文件執行流程
url-pattern的寫法
1.精確匹配寫法 必須/打頭 後面自定義 /aa/bb /aa/ccc/dddd
2.目錄匹配寫法 必須/打頭 中間自定義 以/*結尾 /aa/* /aaa/dd/*
3.尾碼名匹配寫法 必須*.打頭 *.jsp *.action *.do
load-on-startup配置項
修改servlet的預設初始化時機 servlet將會在伺服器啟動的完成載入
<load-on-startup>正整數</load-on-startup>
正整數:如果值越小優先順序越高
defaultservlet:
路徑 /
匹配上所有的資源 但是優先順序最低
你不管的他管
你管不了的它管
5.Servlet運行流程