启动tomcat时报错:java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException:A child

本文深入解析了在web.xml中配置Servlet映射时常见的错误及正确配置方法,对比了不同URL模式如”/“和”/*“的区别,以及它们在路径和扩展名匹配中的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1
2
3
对俺有用的原因:
(一)可能原因是在web.xml中配置时,servlet-mapping的属性配置错误(红色出为配置错误):

<servlet-mapping>
      <servlet-name>coreServlet</servlet-name>
      <url-pattern>/CoreServlet</url-pattern>
  </servlet-mapping>

正确配置为:

 <servlet-mapping>
      <servlet-name>coreServlet</servlet-name>
      <url-pattern>/</url-pattern>
  </servlet-mapping>

其中<url-pattern>xxx</url-pattern>可以为你想要的路径,但是一定要配置正确。
ps: url-pattern规则:有精确匹配,最长路径匹配,扩展匹配,如果前三条规则都没有匹配到,则会交给第四种叫default servlet处理。
以”/’开头和以”/”结尾的是用来做路径映射的; “/” 是用来定义default servlet映射的。 以前缀”.”开头的是用来做扩展映射的。剩下的都是用来定义详细映射的;比如: /aa/bb/cc.action。

<url-pattern>/</url-pattern>和<url-pattern>/*</url-pattern>的区别:
<url-pattern>/</url-pattern> 会匹配到/login这样的路径型url,不会匹配到模式为*.jsp这样的后缀型url

<url-pattern>/*</url-pattern> 会匹配所有url:路径型的和后缀型的url(包括/login,.jsp,.js和*.html等)

注意:路径和扩展名匹配无法同时设置,因为这种匹配即属于路径映射,也属于扩展映射,导致容器无法判断。比如下面的三个<url-pattern>都是非法的,如果设置,启动tomcat服务器会报错。

  <url-pattern>/kata/*.jsp</url-pattern>

  <url-pattern>/*.jsp</url-pattern>

  <url-pattern>he*.jsp</url-pattern>

另外注意:<url-pattern>/aa/*/bb</url-pattern>
这个是精确匹配,url必须是 /aa//bb,这里的不是通配的含义

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值