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