Servlet映射细节

Servlet的映射细节:

 1):一个Servlet程序(Web组件),可以配置多个<url-pattern>,表示一个Servlet有多个资源名称。

<servlet-mapping>
<servlet-name>myservlet2</servlet-name>
<url-pattern>/servlet/demo3</url-pattern>
<url-pattern>/demo3</url-pattern>
</servlet-mapping>

2):一个Servlet程序,可以配置多个<servlet-mapping>。

<servlet>
<servlet-name>myservlet2</servlet-name>
<servlet-class>com.zk.myservlet.myservlet2</servlet-class>
</servlet>

<servlet-mapping>
<servlet-name>myservlet2</servlet-name>
<url-pattern>/servlet/demo3</url-pattern>
</servlet-mapping>

<servlet-mapping>
<servlet-name>myservlet2</servlet-name>
<url-pattern>/demo3</url-pattern>
</servlet-mapping>

3):<url-pattern>必须保证唯一性,而且必须使用/作为开头。

 4):Servlet的映射支持通配符映射(*,表示任意字符):

       第一种写法: /*,任意的资源都可以访问该Servlet。 /system/* :请求的资源必须以/system/作为开头才可以访问。

       第二种写法:*.拓展名,比如:*.do,请求的资源必须以.do作为结尾才可以访问该Servlet。

<servlet>
<servlet-name>myservlet2</servlet-name>
<servlet-class>com.zk.myservlet.myservlet2</servlet-class>
</servlet>
<!-- servlet配置细节  通配符*表示任意字符串,url-pattern为/时,为默认servlet-->
<servlet-mapping>
<servlet-name>myservlet2</servlet-name>
<url-pattern>/action/*</url-pattern>
<!--  <url-pattern>*.do</url-pattern>-->
<!--  <url-pattern>/*</url-pattern>-->
<!--  <url-pattern>/servlet/demo33</url-pattern> -->
</servlet-mapping>

5):在映射Servlet的时候,<servlet-name>元素的文本内容不能是default。

 因为在Tomcat中存在一个叫做default的Servlet,专门用于处理请求静态资源(html,css,js,图片等)。

参考网址:https://blog.csdn.net/fashion_man/article/details/82465927

原文地址:https://www.cnblogs.com/longlyseul/p/9942248.html