web.xml文件中Servlet映射路径<url-pattern>

2016年9月23日21:11:59

一般的写法: /dir1/dir2/dir3...

<servlet-mapping>
    <servlet-name>ServletName</servlet-name>
    <url-pattern>/Servlet/ServletName</url-pattern>
</servlet-mapping>

*通配符的写法有2种: /开头*结尾   或   *.扩展名

<servlet-mapping>
    <servlet-name>ServletName</servlet-name>
    <url-pattern>/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
    <servlet-name>ServletName</servlet-name>
    <url-pattern>/a/b/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
    <servlet-name>ServletName</servlet-name>
    <url-pattern>*.html</url-pattern>
</servlet-mapping>

如果某个Servlet的映射路径仅仅是一个/,那么这个Servlet就成为当前web应用的默认Servlet
它可以处理其它所有Servlet都不处理的请,
开发时最好不要出现这种情况,否则web应用的静态资源无法被访问,从而被此Servlet拦截处理

<servlet-mapping>
    <servlet-name>ServletName</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>

这种情况会覆盖由tomcat提供的默认的Servlet,此Serlvet是为静态资源提供访问服务的
此Servlet是在$tomcat/conf/web.xml文件中配置的:

<servlet>
        <servlet-name>default</servlet-name>
        <servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>
        <init-param>
            <param-name>debug</param-name>
            <param-value>0</param-value>
        </init-param>
        <init-param>
            <param-name>listings</param-name>
            <param-value>false</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>default</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>

对于如下的一些映射关系:

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

注意: *.do这种形式优先级别最低

猜你喜欢

转载自angie.iteye.com/blog/2326542