目前能通过url访问任何静态文件,不管是exclusions中指定的目录还是没有指定的目录,如
通过url访问静态文件:http://localhost/files/20180805/697476b8971343d5b9a987de24a3fc09.mp3
web.xml配置如下:
<filter>
<filter-name>nutz</filter-name>
<filter-class>org.nutz.mvc.NutFilter</filter-class>
<init-param>
<param-name>modules</param-name>
<param-value>org.base.general.controllers.MainModule</param-value>
</init-param>
<init-param>
<param-name>exclusions</param-name>
<param-value>/res/*</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>nutz</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
<dispatcher>INCLUDE</dispatcher>
</filter-mapping>
调试发现
ActionInvoker invoker = mapping.get(ac);
为空,所以返回false,直接执行 nextChain(request, response, chain);了
if (!isExclusion(matchUrl)) {
if (handler.handle(request, response))
return;
}
nextChain(request, response, chain);
问题1:我是不是配置有问题才导致的获取动作连为空?还是通过url路径访问静态文件时动作连本来就为空。
问题2:如果是问题1的后者,那这样设计的目的是什么?
问题3:如何禁止通过url直接访问文件?这 个问题是在容器层面上解决好还是框架层面上解决好?
问题4:如果是问题1的后者,那web.xml中的exclusions有没有意义