1. 程式人生 > >一、Servlet建立與使用

一、Servlet建立與使用

一、Servlet實現步驟
  1. 編寫一個java類,繼承httpServlet
  2. 把開發好的java類部署到web伺服器上
繼承關係 Servlet             --genericServlet                   --HttpServlet                           --自己的servlet 二、專案建立與部署
1、建立專案 2、配置伺服器環境 部署到伺服器上 三、Web.xml 會增加這些配置        1 <servlet>            <servlet-name>ServletDemo1</servlet-name>
           <servlet-class>com.javaweb.servlet.ServletDemo1</servlet-class>              </servlet>          <servlet-mapping>
              <servlet-name>ServletDemo1</servlet-name>            <url-pattern>/servlet/ServletDemo1</url-pattern>         </servlet-mapping>   

<servlet>
servlet-name servlet的註冊名稱
servlet-class 完整類名

<servlet-mapping>
url-pattern servlet的註冊名稱
servlet-name 訪問路徑 
 2、servlet訪問URL對映配置       同一個 servlet 可以被對映到多個 URL 上,也可以使用萬用字元進行對映,有兩種格式:一種是 *. 拓展名,一種是 /*       例如:  <servlet-mapping>     <servlet-name>ServletDemo1</servlet-name>     <url-pattern>/servlet/ServletDemo1</url-pattern>   </servlet-mapping>      <servlet-mapping>     <servlet-name>ServletDemo1</servlet-name>     <url-pattern>/index</url-pattern>   </servlet-mapping>             <servlet-mapping>     <servlet-name>ServletDemo1</servlet-name>     <url-pattern>/*</url-pattern>   </servlet-mapping>     <servlet-mapping>     <servlet-name>ServletDemo1</servlet-name>     <url-pattern>*.haha</url-pattern>   </servlet-mapping>   對於如下的一些對映關係:    Servlet1 對映到 /abc/*    Servlet2 對映到 /*    Servlet3 對映到 /abc    Servlet4 對映到 *.do 問題:   當請求 URL “/abc/a.html” “/abc/*” “/*” 都匹配,哪個 servlet 響應        Servlet 引擎將呼叫 Servlet1   當請求 URL “/abc” 時, “/abc/*” “/abc” 都匹配,哪個 servlet 響應        Servlet 引擎將呼叫 Servlet3   當請求 URL “/abc/a.do” 時, “/abc/*” “*.do” 都匹配,哪個 servlet 響應        Servlet 引擎將呼叫 Servlet1   當請求 URL “/a.do” 時, “/*” “*.do” 都匹配,哪個 servlet 響應        Servlet 引擎將呼叫 Servlet2   當請求 URL “/xxx/yyy/a.do” 時, “/*” “*.do” 都匹配,哪個 servlet 響應        Servlet 引擎將呼叫 Servlet2 匹配的原則就是 " 誰長得更像就找誰 " 3 load-on-startup <!-- tomcat 啟動時就開始載入值越小優先順序越高 -->     <load-on-startup>1</load-on-startup> 四、 servlet 執行過程 1 servlet 程式是由 web 伺服器呼叫, web 伺服器接受到客戶的訪問 servlet 訪問請求後:        1 )、 web 伺服器首先檢查是否已經裝載並建立了該 servlet 例項物件,如果是直接執行第四步。        2 )、裝載並建立該 servlet 例項物件。        3 )、呼叫該 servlet 例項物件的 initi() 方法        4 )、建立一個用於封裝 http 請求訊息的 HttpServletRequest 物件和一個代表 HTTP 響應訊息 HttpServletResponse 物件,然後呼叫 Servlet service() 方法並將請求和響應作為引數傳遞進去        5)、web應用在被停止或重新啟動前,servlet引擎將解除安裝servlet,並在解除安裝之前呼叫servlet的destory()方法。 * 只有首次訪問才建立目標 servlet 2 、生命週期     當第一次訪問servlet這個物件的時候,伺服器就會建立servlet例項,構造方法和initi方法會被先後呼叫,當發生請求時,伺服器就會建立一個新的執行緒執行servlet裡面的service方法在service方法里根據不同的請求方式 去呼叫doGet(),或doPost方法,伺服器銷燬的時候會銷燬servlet物件,呼叫的destory方法。