servlet的映射路徑


如何開發一個servlet

步驟:

  1. 編寫java類,繼承HttpServlet
  2. 重寫doGet和doPost方法
  3. Servlet程序交給服務器運行

    3.1servlet程序的class碼拷貝到WEB-INF/classes目錄

    3.2在web.xml文件中進行配置

注意:在eclipse neon2.0中,servlet直接生成已經不再需要配置web.xml文件,但是如果不使用2.0的功能,使用web.xml配置的servlet依然可以運行。

配置web.xml文件的寫法:

 1 <!-- 配置一個servlet -->
 2 <!-- servlet的配置 -->
 3 <servlet>
 4     <!-- servlet的內部名稱,自定義。盡量有意義 -->
 5     <servlet-name>FirstServlet</servlet-name>
 6     <!-- servlet的類全名:包名+類名 -->
 7     <servlet-class>com.maodoer.test.FirstServlet</servlet-class>
 8 </servlet>
 9 
10 <!-- servlet的映射配置-->
11 <servlet-mapping>
12     <!-- servlet的內部名稱,一定要和上面的內部名稱一致 -->
13     <servlet-name>FirstServlet</servlet-name>
14     <!-- servlet的映射路徑(訪問servlet的路徑) -->
15     <url-pattern>/first</url-pattern>
16 </servlet-mapping>

問題:訪問URL http://localhost:8080/day10_web/first

前提:tomcat服務器啟動時,首先加載webapps中的每隔web應用的web.xml配置文件。

http://:http協議

localhost:到本地的hosts文件中查找是否存在該域名對應的ip地址

8080:找到tomcat服務器

/day10_web:在tomcat的webapps目錄下找到day10的目錄

/first:資源名稱

1)在day10的web.xml中查找是否有匹配的url-pattern的內容(/first)

2)如果找到匹配的url-pattern,則使用當前的servlet-name的名稱到web.xml文件職工查詢是否有相同名稱的servlet配置

3)如果找到,則取出對應的servlet配置信息中的servlet-class內容,字符串:com.maodoer.test.FirstServlet

通過反射:

a)構造FirstServlet的對象

b)然后調用FirstServlet里面的方法

 

Servlet的映射路徑:

        url      瀏覽器輸入

精確匹配:  /first      http://localhost:8080/day10_web/first

      /maodoer/first  http://localhost:8080/day10_web/maodoer/first

 

模糊匹配:  /*        http://localhost:8080/day10_web/任意字符

      /itcast/*      http://localhost:8080/day10_web/itcast/任意字符

      *.后綴名      http://localhost:8080/day10_web/任意路徑.后綴名  

      *.html(偽靜態)   http://http://localhost:8080/day10_web/ergrep.html 

注意:

1)url-pattern一定以/開頭或者以*開頭。

2)不能同時使用兩種模糊匹配,例如/itcast/*.do

3)當輸入的url有多個servlet同時被匹配的情況下:

  3.1精確匹配優先(長的最像優先被匹配)

  3.2以后綴名結尾的模糊匹配級優先級最低 

 

Servlet缺省路徑

servlet的缺省路徑是在tomcat服務器內置的一個路徑。該路徑對應的是一個DefaultServlet(缺省Servlet)。這個缺省的Servlet的作用適用於解析web應用的靜態資源文件。

tomcat--》config--》web.xml文件

問題:URL輸入http://localhost:8080/day10_web/index.html如何讀取文件?

1)到day10_web應用下的web.xml文件查找是否有匹配的url-pattern。

2)如果沒有匹配的url-pattern,則交給tomcat內置的DefalutServlet進行處理。

3)DefalutServlet程序到day10_web項目的根目錄下查找是否存在一個名稱為index.html的靜態文件。

4)如果找到該文件,則讀取該文件的內容,返回瀏覽器。

5)如果找不到該文件,則返回404錯誤。

 

結論:先找動態資源,再找靜態資源。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM