您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

谁能解释servlet映射?

谁能解释servlet映射?

我想我可能知道发生了什么事。

在工作的web.xml中,将servlet设置为认servlet(如果没有其他匹配项,则/本身就是认的servlet),它将回答与另一个映射不匹配的任何请求。

在“失败1”中,您的/ 映射确实是有效的路径映射。通过web.xml中的/映射,它可以回答除其他路径映射以外的所有请求。根据规范,扩展映射是由显式映射覆盖的隐式映射。这就是扩展映射失败的原因。一切都明确地映射到应用程序。

在失败2中,除了与静态内容映射匹配的内容外,App负责其他所有事情。为了显示快速测试中发生的情况,我进行了设置。这是一个例子。 /some-static-content-folder/包含test.png

尝试访问test.png我尝试过:

/some-static-content-folder/test.png

并且找不到该文件。但是尝试

/some-static-content-folder/some-static-content-folder/test.png

它出现了。因此,似乎Tomcat认的servlet(至少为6.0.16)会删除servlet映射,并会尝试使用剩余路径查找文件。 Jetty给出了您和我所期望的行为。

是否有某些原因导致您无法执行某些操作,例如为其余调用映射根目录。诸如app映射到/ rest_root /之类的事情要由您负责rest_root文件夹中发生的任何事情,但是Tomcat应该处理其他任何地方,除非您进行其他显式映射。我建议将您的其余servlet设置为路径映射,因为它可以更好地声明意图。使用/或/似乎不合适,因为您必须映射例外。以SO为例,我的其余映射将类似于

/ users / *用于用户servlet

/ posts / *用于posts servlet

映射顺序

请纠正我弄错的任何事情。

Jave 2022/1/1 18:15:15 有432人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶