<servlet>
<description>This is the description of my J2EE component</description>
<display-name>This is the display name of my J2EE component</display-name>
<servlet-name>MappingDemo1</servlet-name>
<servlet-class>mapping.MappingDemo1</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>MappingDemo1</servlet-name>
<url-pattern>/MappingDemo1</url-pattern>
</servlet-mapping>
以day09项目中名字为MappingDemo1的servlet为例:
<url-pattern>/MappingDemo1</url-pattern>
中精确匹配:
/MappingDemo1
/package/MappingDemo1
就是用http://localhost:8080/day09/MappingDemo1
和http://localhost:8080/day09/package/MappingDemo1访问
模糊匹配
(1) /*
http://localhost:8080/day09/任意路径 (可以不要最后的路径
(2) /itcast/* http://localhost:8080/day09/itcast/任意路径(可以不要最后的路径
(3) *.后缀名
*.html
http://localhost:8080/day09/任意路径.后缀名
例如:(*.action
*.do
*.html
。。。
)
注意:
1)要么以斜杠开头,要么*号开头
非法的url-pattern: /package/*.html
因为有两个模糊匹配在一起。首先可以是package下的任何页面,有要求是html页面,有造成歧义
2) 当多个url-pattern同时被匹配的情况下
2.1 精确匹配优先(长的最像的那个优先被匹配)
2.2 以后缀名结尾的url-pattern的优先级最低的
如果<url-pattern>*.html</url-pattern>
另外在项目中还有一个真正的hello.html页面;
那么http://localhost:8080/day09/hello.html是访问servlet;
因为tomcat服务器是:先访问动态网页,在访问静态网页
在tomcat服务器内部配置了一个缺省路径 /, 这个缺省路径在tomcat服务器内部被一个缺省Servlet(DefaultServlet)匹配。缺省的这个Servlet的作用是专门用于处理所有网站中的静态网页。