j2ee-url-pattern

                        |-- Context Path --|-- Servlet Path -|--Path Info--|
http://www.myserver.com     /mywebapp        /helloServlet      /hello
                        |-------- Request URI  ----------------------------|

①     当映射一个servlet时候,可以多层 比如

<url-pattern>/servlet/index.html</url-pattern> ok

从这里还可以看出,后缀名是 html 不一定就是 html,可能是假象.

 

②     使用通配符在servlet映射到URL

有两种格式:

第一种格式  *.扩展名  比如 *.do  *.ss

第二种格式  / 开头 同时以 /* 结尾  比如  /*   /news/*

通配符练习题:

Servlet1 映射到 /abc/*

Servlet2 映射到 /*

Servlet3 映射到 /abc

Servlet4 映射到 *.do

问题(面试题)

l  当请求URL为“/abc/a.html”,“/abc/*”和“/*”都匹配,哪个servlet响应

       Servlet引擎将调用Servlet1

l  当请求URL为“/abc”时,“/abc/*”和“/abc”都匹配,哪个servlet响应

       Servlet引擎将调用Servlet3

l  当请求URL为“/abc/a.do”时,“/abc/*”和“*.do”都匹配,哪个servlet响应

       Servlet引擎将调用Servlet1

l  当请求URL为“/a.do”时,“/*”和“*.do”都匹配,哪个servlet响应

       Servlet引擎将调用Servlet2

l  当请求URL为“/xxx/yyy/a.do”时,“/*”和“*.do”都匹配,哪个servlet响应

       Servlet引擎将调用Servlet2

 

在匹配的时候,要参考的标准:

(1)    看谁的匹配度高,谁就被选择

(2)    *.do 的优先级最低

你可能感兴趣的:(j2ee-url-pattern)