Servlet基礎學習

Servlet:server applet

官方給出的解釋是運行在服務器端的小程序

瀏覽器通過ip和端口來找到服務器,服務器中的資源分爲兩類,
一類是靜態資源,
一類是動態資源

       所謂動態資源,就是不同的用戶訪問到的頁面是不一樣的,這說明動態資源中肯定有一些邏輯性,來實現不同的用戶訪問同樣的資源看到的是不一樣的。而這些邏輯性,就要通過Java代碼(Java類)來實現。 也就是說瀏覽器請求動態資源的時候,訪問的就是服務器上的Java類

       要注意的是:這裏說的Java類沒有main方法,不能自己運行,需要依賴服務器才能運行,相當於Tomcat(服務器軟件)來執行它。那麼問題來了,如果要Tomcat能夠認識這個類並執行這個類,這個類就需要遵守一定的規則,在Java中,規則==接口

       上面說的規則,就是Servlet,它本質上就是一個接口,定義了Java類被tomcat識別的規則

使用Servlet

  1. 創建JavaEE項目
  2. src目錄內定義一個類,實現Servlet接口
  3. 實現接口中的抽象方法
  4. 配置Servlet(一共有兩種方法,這裏先記錄第一種)在web.xml中配置
		    <servlet>
		        <servlet-name>demo1</servlet-name>
		        <servlet-class>全類名(包名+類名)</servlet-class>
		    </servlet>
		
		    <servlet-mapping>
		        <servlet-name>demo1</servlet-name>
		        <url-pattern>/demo1(Servlet資源路徑)</url-pattern>
		    </servlet-mapping>

在web.xml中加上以上內容

    配置原理:
  1. 當服務器接受到客戶端瀏覽器的請求後,會解析請求URL路徑,獲取訪問的Servlet的資源路徑
  2. 查找web.xml文件,是否有對應的url-pattern標籤體內容。
  3. 如果有,則通過映射找到對應的servlet-class全類名
  4. tomcat會將字節碼文件加載進內存,並且創建其對象
    注意:這個實現了Servlet接口的類是由Tomcat通過反射創建的對象,並不是由程序員創建的
  5. 調用對象的方法

Servlet的生命週期

  1. 被創建:執行init()方法,該方法只執行一次
                  那麼Servlet在什麼時候被創建呢?
                         默認情況下,在資源第一次被訪問時,Servlet被創建
                         可以在web.xml文件中配置改變Servlet被創建的時機
                                在上面說到的servlet標籤下配置,具體下面有圖
  2. 提供服務:執行service方法,可以執行多次
                     每次訪問Servlet時,Service方法都會被調用一次。
  3. 被銷燬:執行destroy方法,只執行一次
                  只有服務器正常關閉時,纔會執行destroy方法。
                  destroy方法在Servlet被銷燬之前執行,一般用於釋放資源

設置Servlet被創建的時機
使用load-on-startup標籤,這是一個圍堵標籤,當標籤的值爲負數的時候,默認第一次被訪問時創建
標籤的值爲正數或0的時候,服務器啓動時創建

使用註解配置Servlet

Servlet3.0以後,可以使用註解配置Servlet,相比較在web.xml文件中配置更加方便
使用方法:
在類上加註解@WebServlet("資源路徑"),這樣就可以通過註解的資源路徑找到相應的類,直接將類加載進內存

Servlet體系結構

Servlet是一個接口,裏面有5個抽象方法,每次繼承Servlet接口的時候,都需要重寫這5個抽象方法,而實際上,很多時候並用不到其中的有些方法,所以每次都要重寫,很麻煩
這樣,就有了Servlet的子類GenericServlet
GenericServlet
也是一個抽象類,將Servlet接口中其他的方法做了默認空實現只將service()方法作爲抽象,將來定義Servlet類時,可以繼承GenericServlet,只實現service()方法即可(但實際上,這種方法使用較少)
HttpServlet
HttpServlet extends GenericServlet 該類是對Http協議的一種封裝和描述,具體細節之後詳解。

上接設置Servlet被創建的時機

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章