gpt4 book ai didi

java - Tomcat 在哪里附加/到目录路径?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:27:23 28 4
gpt4 key购买 nike

假设我的 Tomcat webapps 目录如下所示:

webapps/
webapps/fooapp/
webapps/fooapp/WEB-INF/
webapps/fooapp/WEB-INF/web.xml
webapps/fooapp/bardir/

当我为 /fooapp/bardir 发出 GET 请求时,Tomcat 发现 webapps/fooapp/bardir 是一个目录,并向 /fooapp/bardir/ 发回 302 >(末尾有斜杠)。

这是我的问题:在 Tomcat 源代码中哪里发生了这种情况?(我正在查看 6.0.x,但任何版本的正确答案都是是一个很好的起点。)

我能找到的关于这个主题的唯一引用资料是 Catalina Functional Specifications其中指出,关于默认 Servlet:

On each HTTP GET request processed by this servlet, the following processing shall be performed:

[...]

  • If the requested resource is a directory:
    • If the request path does not end with "/", redirect to a corresponding path with "/" appended so that relative references in welcome files are resolved correctly.

但是,这个功能似乎并不存在于 org.apache.catalina.servlets.DefaultServlet 中;或者至少,它不是专门存在的:如果我用 servlet 类不存在 的 servlet 替换 web.xml 中的默认 servlet,目录路径仍然返回 302添加斜杠,而其他所有请求都会按预期返回错误。

最佳答案

认为它发生在org.apache.tomcat.util.http.mapper.Mapper ,即在 internalMapWrapper (Context, CharChunk, MappingData) 方法中。

但不幸的是我不太确定——也许这真的是一个更适合 tomcat-users 的问题邮件列表。很抱歉没有更好的答案。

关于java - Tomcat 在哪里附加/到目录路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2815986/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com