Javaweb访问Servlet,使用url-pattern映射报404咋回事?是映射写出错?还是配置的问题?为啥会请求资源不可用?
结果示意图:


代码如下图:



Javaweb访问Servlet,使用url-pattern映射报404咋回事?是映射写出错?还是配置的问题?为啥会请求资源不可用?
结果示意图:


代码如下图:



关注【相关推荐】
url-pattern配置方式共有三种:
1.完全路径匹配 :以 / 开始 ; /aa/bb
例如: /demo01 ,/login, /aaa/ServletDemo5 , /aaa/bbb/ServletDemo6
2.目录匹配:以 / 开始需要以 * 结束. ===>过滤器
例如: /* (所有) /aaa/* (aaa目录下的所有) /aaa/bbb/*
3.扩展名匹配 :不能以 / 开始, 以 * 开始的 .
例如:
*.do, *.jsp,*.jpg
错误的写法 : /*.do
缺省路径(系统自带的)
通常情况访问 html页面时,首先从当前web项目的web.xml文件寻找匹配路径,如果如果没有找到,再从tomcat默认的web.xml匹配,将使用缺省servlet
一个路径对应一个servlet,但是一个servlet可以有多个路径
tomcat获得匹配路径时,优先级顺序:1 >2 > 3 > 4
完全路径匹配> 目录匹配 > 扩展名匹配 > 缺省路径(tomcat里面的)
有如下的配置:
<servlet>
<servlet-name>ServletDemo</servlet-name>
<servlet-class>com.cd.a_servlet.ServletDemo</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>ServletDemo</servlet-name>
<url-pattern>/ServletDemo</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>ServletDemo1</servlet-name>
<servlet-class>com.cd.a_servlet.ServletDemo1</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>ServletDemo1</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>ServletDemo2</servlet-name>
<servlet-class>com.cd.a_servlet.ServletDemo2</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>ServletDemo2</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>