servlet虚拟路径映射

在web.xml文件中,一个<servlet-mapping>元素用于映射一个Servlet的对外访问路径,该路径也称为虚拟路径。例如<url-pattern>/TestServlet</url-pattern>,其中“/TestServlet”就是一个虚拟路径。

1)Servlet的多重映射

Servlet的多重映射是指同一个Servlet可以被映射成多个虚拟路径,即客户端可以通过多个路径访问同一个Servlet,可以在<servlet-mapping>标签中配置多个<url-pattern>标签。示例如下:

 <servlet-mapping>

   <servlet-name>TestServlet</servlet-name>

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

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

</servlet-mapping>

(2)映射路径中使用通配符

在Servlet映射的路径中使用通配符”*”,可以使目录下的所有匹配的路径都可以访问同一个Servlet。

1)       <url-pattern>/servlet/*</url-pattern>

这种属于路径匹配,通配符”*”为后缀,/servlet/a、/servlet/b都与/servlet/*匹配。

2)       <url-pattern>*.do</url-pattern>

这种属于扩展名匹配,通配符”*”为前缀,/abc/a.do、/a.do都与*.do匹配。

3)       <url-pattern>/*</url-pattern>

这种属于完全匹配,通配符”*”为后缀,匹配所有路径。

注意:

Ø  通配符要么在开头,要么在结尾,不能在中间,<url-pattern>/*.do</url-pattern>就是错误的使用。

Ø  如果不使用通配符,那么<url-pattern>的内容必须以”/”开头,<url-pattern>abc</url-pattern>就是错误的。

Ø  三种通配符匹配方式的优先级是匹配的范围越大优先级越低。

示例如下:

<servlet>

<servlet-name>test</servlet-name>

   <servlet-class>cn.chen.servlet.TestServlet</servlet-class>

</servlet>

<servlet-mapping>

<servlet-name>test</servlet-name>

<url-pattern>/servlet/*</url-pattern>

</servlet-mapping>

猜你喜欢

转载自blog.csdn.net/ncomer/article/details/83244209