我在web.xml中使用以下内容来配置servlet以动态生成PDF。
<servlet-mapping>
<servlet-name>pdfServlet</servlet-name>
<url-pattern>*.pdf</url-pattern>
</servlet-mapping>
现在,我还必须提供一些静态PDF文件。什么是最简洁的配置方式?我目前只提供四到五个动态文件,如果这有用的话,不要指望它会增加。
答案 0 :(得分:3)
这是一个令人惊讶的恼人问题,我还没有找到一个令人满意的解决方案。
我确信你知道问题的基础是你的web.xml被配置为将所有* .pdf请求发送到你的Spring servlet。显而易见的是,servlet可以识别哪些请求是针对静态PDF的,然后将请求内部转发到该静态文件,但由于该文件可能以.pdf结尾,因此请求将返回通过servlet再次,ad nauseum。
我尝试过的唯一解决方法是让servlet手动从servlet上下文中读取静态PDF(使用ServletContext.getResource()
),并将其写入servlet输出流,确保设置各种标题正确。这不是很好。
我能想到的唯一选择是使url-pattern
中的web.xml
不那么广泛,以便只有动态PDF请求被路由到servlet,并且静态PDF请求被路由到该文件,但这需要您的文档的某种命名约定,这可能不是一个选项。
答案 1 :(得分:1)
您根本不需要配置静态文件;如果Tomcat可以找到一个文件,它将为它提供服务。只有在希望Tomcat调用某些代码时才需要配置。