Servlet细节问题

(1)一个<servlet>可以对应多个<serlvet-mapping>,从而一个Servlet可以有多个路径来访问。

 

(2)url-partten中的路径可以使用*匹配符号进行配置,

1、注意,只能是/开头/*结尾,或*.后缀这两种方式

<url-pattern>/MyFirstServlet/my/* </url-pattern>

    http://localhost:8080/MyFirstServlet/my/abcldefqdf12

 

<url-pattern>*.haha </url-pattern>

    http://localhost:8080/a123dsfffrgre.haha

2、由于*的引入,有可能一个路径被多个urlpartten匹配,这是优先级判断条件如下:

         哪个最像找哪个

         *.后缀永远匹配级最低

 

 

(3)一般Servlet在第一次被访问到的时候,服务器才创建出Servlet对象,

<serlvet>配置<load-on-startup>,那么WEB应用程序在启动时,指定启动顺序装载并创建Servlet的实例对象、以及调用Servlet实例对象的init()方法.

用途:web应用写一个InitServlet,这个servlet配置为启动时装载,为整个web应用创建必要的数据库表和数据。

 

(4)缺省Servlet:如果有一个Servleturl-partten被配置为了一根正斜杠/,这个Servlet就变成了缺省Serlvet

<serlvet-mapping>

     <servlet-name>MyFirstServlet</servlet-name>

     <url-pattern>/ </url-pattern>

</serlvet-mapping>

1其他Servlet 都不处理的请求,由缺省Servlet来处理。

2、地址栏上的请求urlweb.xmlservlet不匹配的时候,访问缺省Servlet,缺省Servlet先去匹配web应用根目录静态资源的url,将静态资源显示到浏览器。

   3、设置404页面500页面等提示页面也是由缺省Servlet来执行

4、通常我们不会自己去配置缺省Servlet,会导致静态资源不能通过URL地址直接被访问了,默认缺省Servlet来自tomcat\conf\web.xml