我在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目录中显示内容。
问题是任何人都可以访问&#34; web&#34;中的所有文件。文件夹中。
我们如何在虚拟目录上放置过滤器。
仅供参考 - 我已将网络应用程序命名为&#34; TestApp&#34;并且虚拟配置位于&#34; $ tomcat_dir / conf / Catalina / localhost&#34;文件名为#34; TestApp#web.xml&#34;文件并具有内容
<?xml version='1.0' encoding='utf-8'?>
<Context docBase="C:/web" debug="0" privileged="true"></Context>
此致
答案 0 :(得分:0)
上下文XML文件TestApp#web.xml
将请求映射到/TestApp/web/...
到webapp。在webapp中,路径是相对的,因此/TestApp/web/x.txt
是指向webapp的路径/x.txt
,并将提供文件C:/web/x.txt
。
将过滤器更改为/*
,以便过滤所有请求,包括请求/x.txt
。