【发布时间】:2014-02-07 02:53:54
【问题描述】:
当对应于欢迎文件请求调用 servlet 过滤器时,过滤器有没有办法获取正在提供的特定欢迎文件的名称? getRequestURL 停在上下文根(大概是因为那是请求的 url)。
我可以将过滤器映射到每个可能的欢迎文件,但是让它们都使用相同的过滤器会更方便,并为每个文件做一些稍微不同的事情。
【问题讨论】:
-
删除除一个以外的所有可能的默认索引文件,然后您将始终知道正在提供哪个。
-
这实际上是我目前使用的方法,以避免必须识别提供的特定欢迎文件。但是,如果有办法实际识别所提供的特定欢迎文件,我想知道。
-
为什么要在不控制的情况下提供不同的欢迎文件? (例如,在过滤器中检查首选语言并为每种语言提供不同的文件)
-
我有一个 servlet 过滤器,它可以捕获所有请求,以确保用户在提供任何内容之前已登录。如果请求的 uri 未指定文件(即,它在上下文根目录处停止并且将提供欢迎文件),我必须知道该欢迎文件是什么,因此在重定向到登录页面后,我可以重定向回到最初请求的文件——即 [未命名] 欢迎文件。我宁愿不为网站设计者规定一个特定的欢迎文件,让他们在 web.xml 中担心这一点。我需要欢迎文件名来进行第二次重定向。
-
但是,这将不是问题,因为我不会捕获过滤器中的所有请求,而是只会捕获对“受保护”页面的请求(这些都不是欢迎文件),因此我不必再担心过滤器中的欢迎文件。
标签: servlets servlet-filters welcome-file