我在web.xml中使用以下内容来配置servlet以动态生成PDF。

<servlet-mapping>
    <servlet-name>pdfServlet</servlet-name>
    <url-pattern>*.pdf</url-pattern>
</servlet-mapping>

现在,我还必须提供一些静态PDF文件。什么是最简洁的配置方式?我目前只提供四到五个动态文件,如果这有用的话,不要指望它会增加。

有帮助吗?

解决方案

您根本不需要配置静态文件;如果Tomcat可以找到一个文件,它将为它提供服务。只有在希望Tomcat调用某些代码时才需要配置。

其他提示

这是一个令人惊讶的恼人问题,我还没有找到一个令人满意的解决方案。

我确信你知道问题的基础是你的web.xml被配置为将所有* .pdf请求发送到你的Spring servlet。显而易见的是,servlet可以识别哪些请求是针对静态PDF的,然后将请求内部转发到该静态文件,但由于该文件可能以.pdf结尾,因此请求将返回通过servlet再次,ad nauseum。

我尝试过的唯一解决方法是让servlet从servlet上下文中手动读取静态PDF(使用 ServletContext.getResource()),并将其写入servlet输出流,确保正确设置各种标头。这不是很好。

我能想到的唯一选择是使 web.xml 中的 url-pattern 稍微宽泛一些,这样只有动态PDF请求才能被路由到servlet和静态PDF的请求被路由到文件,但这需要某种文档的命名约定,这可能不是一个选项。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top