web.xml中servlet配置及其含义
原作者:丑八怪28? 侵刪!
這里其實最想說的是配置中各節點的含義:
<!-- 配置一個servlet --> <!-- servlet的配置 --> <servlet> <!-- servlet的內部名稱,自定義。盡量有意義 --> <servlet-name>ServletDemo</servlet-name> <!-- servlet的類全名: 包名+簡單類名 --> <servlet-class>lm.practice.ServletDemo</servlet-class> </servlet> <!-- servlet的映射配置 --> <servlet-mapping> <!-- servlet的內部名稱,一定要和上面的內部名稱保持一致!! --> <servlet-name>ServletDemo</servlet-name> <!-- servlet的映射路徑(訪問servlet的名稱) --> <url-pattern>/servlet</url-pattern> </servlet-mapping>
可以看到,在配置Servlet時,有兩個地方需要配置,一個是<servlet>,另一個是<servlet-Mapping>,這兩個一個是配置Servlet,一個是配置其映射信息,其中<servlet>中的<servlet-name>可以隨意指定,但要有一定的意義,一般取為類的名稱,例如我的類名為ServletDemo,這里取名為ServletDemo,下面的<servlet-class>是類的全路徑,package+calssname,一定要是全路徑!
<servlet-Mapping>是映射信息,它也有一個<servlet-name>,里面的名字是對應的Servlet名,也就是我們上面配置的Servlet名字,這里是ServletDemo,下面的是映射路徑,也就是訪問Servlet的名稱,這里也是以方便和有意義為前提的,是我們在訪問Servlet在瀏覽器地址欄后面輸入的那個信息,例如我的映射路徑命名為/servlet,在地址欄中輸入http://localhost/20170323/servlet
注意:這里的映射路徑一定不是丟掉/,否則就會出錯了,一定要寫成/servlet,不能是servlet
這里說一下在配置映射路徑的時候,有以下兩種:
??????????????????? url-pattern ? ? ? ? ? ? ? ? ? ? ? ? 瀏覽器輸入
精確匹配???????????? /servlet ? ? ? ? ? ? ? ? ? http://localhost:8080/day10/servlet
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
?
模糊匹配???????????? /*?????????????????? http://localhost:8080/20170323/任意路徑
? ? ? ? ? ? ? ? ? ? ? ? ?/lm/*??? ? ? ? ? ? ??http://localhost:8080/20170323/lm/任意路徑
? ? ? ? ? ? ? ? ??? ?*.后綴名 ? ? ? ? ? ? ?http://localhost:8080/20170323/任意路徑.do
? ? ? ? ? ? ? ? ? ? ?*.do
? ? ? ? ? ? ? ? ? ? ?*.action
? ? ? ? ? ? ? ? ? ? ?*.html(偽靜態)
?
注意:
?????????????????? 1)url-pattern要么以?/?開頭,要么以*開頭。? 絕對不能漏掉斜杠!!!!!!!!!
?????????????????? 2)不能同時使用兩種模糊匹配,例如?/lm/*.do是非法路徑
?????????????????? 3)當有輸入的URL有多個servlet同時被匹配的情況下:
???????????????????????????????????? 3.1?精確匹配優先。(長的最像優先被匹配)
???????????????????????????????????? 3.2?以后綴名結尾的模糊匹配先級最低!!!
總結
以上是生活随笔為你收集整理的web.xml中servlet配置及其含义的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何理解海森堡的「不确定性原理」(总结)
- 下一篇: Volley解析(一)--Volley的