【问题标题】:Forward web request for directory index ('/') to an index.htm page in JBoss 4.0.5将目录索引 ('/') 的 Web 请求转发到 JBoss 4.0.5 中的 index.htm 页面
【发布时间】:2011-02-15 08:09:56
【问题描述】:

我正在使用 JBoss 4.0.5.GA 运行一组 java 应用程序。其中之一是使用 Spring 1.4 的 Web 前端。 URL 映射的配置方式是将来自请求 URL 的“假”页面映射到控制器。这意味着当有人请求 /index.htm 时,磁盘上没有实际的“index.htm”,并且该请求映射到特定的控制器,然后呈现 jsp 视图。

所以问题如下:我需要告诉 JBoss 以某种方式将所有对目录索引的请求转发到相应的 'index.htm' URL,如下所示:/ → /index.htm; /news/ → /news/index.htm; /foo/bar/baz/ → /foo/bar/baz/index.htm 等等。

我不能使用 Tomcat 的 welcome-file-list 功能,因为它会在磁盘上查找这些文件,而所有 'index.htm' 都是假的,实际上并不存在于磁盘上。

【问题讨论】:

    标签: java tomcat jboss


    【解决方案1】:

    为什么不能添加一个控制器来处理对/ URL 的请求,然后转发到index.htm 控制器?

    如果这不是一个选项,请考虑使用URLRewriteFilter 库来执行转发或重定向。这应该能够位于您自己的代码之外。

    【讨论】:

    • 我尝试使用 URLRewriteFilter,但它以某种方式破坏了整个应用程序。你看,它是由另一家公司设计和建造的,他们在使用每一个可用的反模式方面做得很好:) 据我所知,web.xml 中有一些过滤器设置了一些初步的供以后请求处理的信息。当 URLRewriteFilter 执行转发时,它会跳过所有其他过滤器并将请求直接提供给 servlet。我尝试使用过滤器顺序,但没有运气。所以不幸的是 URLRewriteFilter 不是一个选项。
    • 所以我想,我将不得不添加一个新的控制器,它将请求转发给另一个,正如你所建议的那样。谢谢! :)
    猜你喜欢
    • 1970-01-01
    • 2016-12-05
    • 1970-01-01
    • 2021-07-24
    • 1970-01-01
    • 2016-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多