web.xml配置问题
学习过mvc之后就不想让自己以前用jsp、servlet那般赤裸裸得存在了,于是打算用FrontController来控制前台页面的跳转,没想到在配置web.xml时崩溃了:
<servlet>
<servlet-name>frontcontroller</servlet-name>
<servlet-class>cn.com.web.FrontController</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>frontcontroller</servlet-name>
<url-pattern>/*.do</url-pattern>
</servlet-mapping>
报错:
严重: Parse error in application web.xml
java.lang.IllegalArgumentException: Invalid <url-pattern> /u2_Sec/*.do in servlet mapping
nm,配置过滤器时都没问题,如:
<filter-mapping>
<filter-name>encode</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
求助百度,没想到是“/*.do”的问题,好像是/和*.do不能同时使用,于是去掉”/”,世界太平了。
看来得研究一下web.xml的配置细节啊——
web.xml中<url-pattern>的3种写法
完全匹配
<url-pattern>/test/list.do</url-pattern>
目录匹配
<url-pattern>/test/*</url-pattern>
扩展名匹配
<url-pattern>*.do</url-pattern>
servlet-mapping的重要规则:
☆ 容器会首先查找完全匹配,如果找不到,再查找目录匹配,如果也找不到,就查找扩展名匹配。
☆ 如果一个请求匹配多个“目录匹配”,容器会选择最长的匹配。