大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

Servlet教程

Servlet配置虛擬路徑映射

在 web.xml 文件中,一個  <servlert-mapping>元素用于映射一個 Servlet 的對外訪問路徑,該路徑也稱為虛擬路徑。例如,在《第一個Servlet程序》教程中,TestServlet01 所映射的虛擬路徑為“/TestServlet01”。

創建好的 Servlet 只有映射成虛擬路徑,客戶端才能對其進行訪問。但是在映射 Servlet 時,還有內容需要學習,如 Servlet 的多重映射、在映射路徑中使用通配符、配置默認的 Servlet 等。本節將對這些內容進行講解。

Servlet的多重映射

Servlet 的多重映射指同一個 Servlet 可以被映射成多條虛擬路徑。也就是說,客戶端可以通過多條路徑實現對同一個 Servlet 的訪問。Servlet 多重映射的實現方式有以下兩種。

1、配置多個 <servlet-mapping>元素

以《第一個Servlet程序》教程中的 TestServlet01 為例,在 web.xml 文件中的 <servlet-mapping>元素下,增加一個 <servlet-mapping>元素配置,其增加后的代碼如下所示:

<servlet-mapping>
    <!-- 映射為Test01 -->
    <servlet-name>TestServlet01</servlet-name>
    <url-pattern>/Test01</url-pattern>
</servlet-mapping>

重啟 Tomcat 服務器,在瀏覽器的地址欄中輸入地址 http://localhost:8080/servletDemo01/TestServlet01 訪問 TestServlet01,瀏覽器的顯示結果如圖 1 所示。

圖 1 運行結果

在瀏覽器的地址欄中輸入地址 http://localhost:8080/servletDemo01/Test01 訪問 TestServlet01,瀏覽器顯示的結果如圖 2 所示。

圖 2 運行結果

通過圖 1 和圖 2 的比較,發現使用兩個 URL 地址都可以正常訪問 TestServlet01。由此可見,通過配置多個 <servlet-mapping> 元素可以實現 Servlet 的多重映射。

2、配置多個<url-pattern> 子元素

同樣以 TestServlet01 為例,在 web.xml 文件中對 TestServlet01 的<servlet-mapping> 元素進行修改,在該元素中配置多個 <url-pattern>,修改后的代碼如下所示:

<servlet-mapping>
    <!-- 映射為TestServlet01和Test02 -->
    <servlet-name>TestServlet01</servlet-name>
    <url-pattern>/TestServlet01</url-pattern>
    <url-pattern>/Test02</url-pattern>
</servlet-mapping>

重啟 Tomcat 服務器,在瀏覽器的地址欄中輸入地址 http://localhost:8080/servletDemo01/TestServlet01 訪問 TestServlet01,瀏覽器的顯示結果如圖 3 所示。

圖 3 運行結果

在瀏覽器的地址欄中輸入地址 http://localhost:8080/servletDemo01/Test02 訪問 TestServlet01,瀏覽器的顯示結果如圖 4 所示。

圖 4 運行結果

通過圖 3 和圖 4 的比較,發現使用兩個 URL 地址也可以正常訪問 TestServlet01。由此可見,在一個  <servlet-mapping>元素下配置多個 <url-pattern>子元素同樣可以實現 Servlet 的多重映射。

Servlet映射路徑中使用通配符

在實際開發過程中,開發者有時會希望某個目錄下的所有路徑都可以訪問同一個 Servlet,這時,可以在 Servlet 映射的路徑中使用通配符*。通配符的格式有兩種,具體如下。

• 格式為“*.擴展名”,例如 *.do 匹配以 .do 結尾的所有 URL 地址。

• 格式為 /*,例如 /abc/* 匹配以 /abc 開始的所有 URL 地址。

需要注意的是,這兩種通配符的格式不能混合使用,例如,/abc/*.do 是不合法的映射路徑。另外,當客戶端訪問一個 Servlet 時,如果請求的 URL 地址能夠匹配多條虛擬路徑,那么 Tomcat 將采取最具體匹配原則查找與請求 URL 最接近的虛擬映射路徑。例如,對于如下所示的一些映射關系:

/abc/*  映射到 Servlet1
/*         映射到 Servlet2
/abc     映射到 Servlet3
*.do     映射到 Servlet4

• 當請求 URL 為 /abc/a.html,/abc/* 和 /* 都可以匹配這個 URL,Tomcat 會調用 Servlet1。

• 當請求 URL 為 /abc、/*、/abc/* 和 /abc 都可以匹配這個 URL,Tomcat 會調用 Servlet3。

• 當請求 URL 為 /abc/a.do、/*、*.do 和 /abc/* 都可以匹配這個 URL,Tomcat 會調用 Servlet1。

• 當請求 URL 為 /a.do,/* 和 *.do 都可以匹配這個 URL,Tomcat 會調用 Servlet2。

• 當請求 URL 為 /xxx/yyy/a.do,*.do 和 /* 都可以匹配這個 URL,Tomcat 會調用 Servlet2。

默認Servlet

如果某個 Servlet 的映射路徑僅僅是一個正斜線(/),那么這個 Servlet 就是當前 Web 應用的默認 Servlet。Servlet 服務器在接收到訪問請求時,如果在 web.xml 文件中找不到匹配的 <servlet-mapping>  元素的 URL,則會將訪問請求交給默認 Servlet 處理,也就是說,默認 Servlet 用于處理其他 Servlet 都不處理的訪問請求。

下面對《第一個Servlet程序》教程中的web.xml文件進行修改,將其設置為默認的 Servlet,具體如下:

<servlet>
    <servlet-name>TestServlet01</servlet-name>
    <servlet-class>com.mengma.servlet.TestServlet01</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>TestServlet01</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>

啟動 Tomcat 服務器,在瀏覽器的地址欄中輸入任意地址,如 http://localhost:8080/servletDemo01/abcde,瀏覽器的顯示結果如圖 5 所示。

圖 5 運行結果

從圖 5 中可以看出,當 URL 地址和 TestServlet01 的虛擬路徑不匹配時,瀏覽器仍然可以正常訪問 TestServlet01。

需要注意的是,在 Tomcat 安裝目錄下的 web.xml 文件中也配置了一個默認的 Servlet,配置信息如下所示:

<servlet>
    <servlet-name>default</servlet-name>
    <serlet-class>org.apache.catalina.servlets.DefaultServlet</serlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>default</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>

在上面的配置信息中,org.apache.catalina.servlets.DefaultServlet 被設置為默認的 Servlet,它對 Tomcat 服務器上所有的 Web 應用都起作用。

當 Tomcat 服務器中的某個 Web 應用沒有默認 Servlet 時,都會將 DefaultServlet 作為默認的 Servlet。當客戶端訪問 Tomcat 服務器中的某個靜態 HTML 文件時,DefaultServlet 會判斷 HTML 是否存在,如果存在,則會將數據以流的形式回送給客戶端,否則會報告 404 錯誤。

全部教程
主站蜘蛛池模板: 天天操天天摸天天干 | 五月婷婷中文字幕 | 国产一级一国产一级毛片 | 国内精品在线视频 | 天天操天天舔天天射 | 欧美成人性视频播放 | 日韩欧美在线观看视频一区二区 | 91精东果冻蜜桃星空麻豆 | 国产精品久久久久久久久鸭 | 国内揄拍国内精品久久 | 亚洲国产精品久久婷婷 | 天天摸夜夜添久久精品麻豆 | 婷婷综合激情 | 91九色精品国产免费 | 美国一级毛片片aa久久综合 | 成人在色线视频在线观看免费大全 | 香蕉免费看一区二区三区 | 亚洲国产欧美在线不卡中文 | 欧美亚洲另类综合 | 成年人免费毛片 | 青青草好吊色 | 深夜视频在线免费 | 成人亚洲在线观看 | 91精品国产综合久久精品 | 国产精品青草久久福利不卡 | 久久毛片网站 | 国产成人精品日本亚洲语言 | 成人精品视频一区二区在线 | 天天综合天天做 | 国内精品久久久久久久亚洲 | 欧美黑人激情性久久 | 婷婷四房综合激情五月在线 | 精品欧美一区二区三区在线观看 | 国内精品福利视频 | 一本色道久久综合狠狠躁 | 最新九九精品 | 天天操天天干天天射 | 久久专区 | 香蕉成人国产精品免费看网站 | 国产亚洲男人的天堂在线观看 | 日韩一级不卡 |