1. 程式人生 > >JavaWeb核心——Servlet

JavaWeb核心——Servlet

startup 規範 width 所有 內容 spa 虛擬路徑 app art

Servlet簡介

Servlet是sun公司提供一套規範(接口),用來處理客戶端請求、響應給瀏覽器的動態資源。但servlet的實質就是java代碼,通過java的API 動態的向客戶端輸出內容。

使用

  1. 創建類,實現Servlet接口
  2. 重寫接口中的方法(service方法)
  3. 在web.xml進行servlet的配置

Servlet獲取請求的過程

技術分享圖片

在解析請求的資源地址時幹的事

技術分享圖片

1、servlet的生命周期

Servlet接口中的方法

1)init(ServletConfig config)

  • ServletConfig : 代表的是該servlet對象的配置信息

在servlet對象創建的時候執行,默認

在第一次訪問的時候執行該方法。

2)service(ServletRequest request,ServletResponse response)

  • ServletRequest :代表請求 認為ServletRequest 內部封裝的是 http請求的信息
  • ServletResponse :代表響應 認為要封裝的是響應的信息

每次請求都會執行

3)destroy()

在servlet銷毀的時候執行(關閉服務器時)

2、servlet的配置

1、基本配置

<!--servlet類的配置-->
<servlet>
    <servlet-name>abc</servlet-name>
    <servlet-class>cn.x5456.demo.Myservlet</servlet-class>
</servlet>

<!--servlet虛擬路徑的配置-->
<servlet-mapping>
    <servlet-name>abc</servlet-name>
    <url-pattern>/abc123</url-pattern>
</servlet-mapping>

2、url-pattern的配置方式

1)完全匹配:訪問的資源與配置的資源完全相同才能訪問到

技術分享圖片

2)目錄匹配 格式:/虛擬的目錄../* *代表任意

技術分享圖片

3)擴展名匹配 格式:*.擴展名

技術分享圖片

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

3、配置實例化Servlet的時間

上面說了,默認在第一次訪問的時候執行init方法,我們可以在web.xml加上一個配置 <load-on-startup> servle,使t對象在服務器啟動時就創建。

<servlet>
    <servlet-name>abc</servlet-name>
    <servlet-class>cn.x5456.demo.Myservlet</servlet-class>

    <load-on-startup>3</load-on-startup>    <!--運行起來3秒後,執行相應類的init方法-->
</servlet>

4、缺省Servlet

可以將url-pattern配置一個/,代表該servlet是缺省的servlet,缺省servlet就是,當你訪問資源地址所有的servlet都不匹配時 , 缺省的servlet負責處理

<!--servlet虛擬路徑的配置-->
<servlet-mapping>
    <servlet-name>abc</servlet-name>
    <url-pattern>/</url-pattern>    <!--沒人要的,我全要-->
</servlet-mapping>

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

技術分享圖片

5、歡迎頁面

當訪問“/”時,默認訪問的是上一層的各種index.*文件(原因:在全局的web.xml文件中配置了)

技術分享圖片

JavaWeb核心——Servlet