gpt4 book ai didi

java - servlet 过滤器无法处理 tomcat 中的虚拟目录

转载 作者:行者123 更新时间:2023-11-28 23:28:58 24 4
gpt4 key购买 nike

我在 glassfish3.x 中配置了虚拟目录,我可以在上面编写过滤器。

例如,我可以从 http://localhost/TestApp/web 访问 c:/web 中的文件我还可以在我的网络应用程序的 web/xml 文件中放置一个过滤器

<filter-mapping>
<filter-name>dir_filter</filter-name>
<url-pattern>/web/*</url-pattern>
</filter-mapping>

不幸的是,Tomcat 8.0 不允许我在上面写一个过滤器。它只是忽略过滤器并显示 web 目录中的内容。

问题是任何人都可以访问“web”文件夹中的所有文件。

我们如何在虚拟目录上放置过滤器。

仅供引用 - 我制作了名为“TestApp”的网络应用程序,虚拟配置位于“$tomcat_dir/conf/Catalina/localhost”目录中,文件名为“TestApp#web.xml”文件,内容为

<?xml version='1.0' encoding='utf-8'?> 
<Context docBase="C:/web" debug="0" privileged="true"></Context>

问候

最佳答案

上下文 XML 文件 TestApp#web.xml 将请求映射到 /TestApp/web/... 到 webapp。在 webapp 中,路径是相对于它的,所以 /TestApp/web/x.txt 是 webapp 的路径 /x.txt,并将提供文件 C:/web/x.txt.

将过滤器更改为/*,这样所有请求都会被过滤,包括。 /x.txt 的请求。

关于java - servlet 过滤器无法处理 tomcat 中的虚拟目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33290483/

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