Servlet配置web.xml,使用通配符出问题

wzd5230 2016-05-12 12:47:28
配置web.xml,在<servlet-mapping>中的<url-pattern>尝试使用通配符。配置如下

<!-- servlet mapping指定了Servlet类的访问url -->
<servlet-mapping>
<servlet-name>HelloServlet</servlet-name>
<url-pattern>/servlet/*.hk</url-pattern><!-- 使用通配符 -->
</servlet-mapping>

但是启动tomcat的时候提示如下错误

严重: ContainerBase.addChild: start:
org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/WebProj01]]
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:153)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:725)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:701)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:717)
at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:940)
at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1816)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:744)
Caused by: java.lang.IllegalArgumentException: Invalid <url-pattern> /servlet/*.hk in servlet mapping
at org.apache.catalina.core.StandardContext.addServletMapping(StandardContext.java:3153)
at org.apache.catalina.core.StandardContext.addServletMapping(StandardContext.java:3128)
at org.apache.catalina.startup.ContextConfig.configureContext(ContextConfig.java:1376)
at org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1184)
at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:779)
at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:306)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:95)
at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5150)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147)
... 10 more

上面提示到 Invalid <url-pattern> /servlet/*.hk in servlet mapping。
我看了下这里通配符的使用规则,一种是/*,另一种是*.后缀名。
不知道我这个问题出在哪里了??
...全文
230 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
引用 2 楼 wzd772461552 的回复:
[quote=引用 1 楼 qnmdcsdn 的回复:] 好像是不能用/*.后缀,至于为什么,不太清楚
可我在网上查找这个通配符的用法的时候,里面的确说可以这么用,还有《java web王者归来》这本书中也说了这种用法,如下图。 [/quote] 你说的那两种用法是*.后缀或者/*吧, 不过你用的是/*.后缀吧,不在这两种情况中
wzd5230 2016-05-12
  • 打赏
  • 举报
回复
引用 1 楼 qnmdcsdn 的回复:
好像是不能用/*.后缀,至于为什么,不太清楚

可我在网上查找这个通配符的用法的时候,里面的确说可以这么用,还有《java web王者归来》这本书中也说了这种用法,如下图。
  • 打赏
  • 举报
回复
好像是不能用/*.后缀,至于为什么,不太清楚

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧