重命名由Java Servlet流式传输的PDF

Mon*_*ded 3 java servlets download

使用XSLT,XSL-FO和Apache FOP的正确组合,我可以将PDF发送到某个浏览器窗口.
实际上,我发送的文件内容如下:

           response.setContentType("application/pdf");
            response.setContentLength( out.size());
            response.getOutputStream().write( out.toByteArray());
            response.getOutputStream().flush();

正如预期的那样,浏览器在名为"pdf"的选项卡中显示PDF内容,如果我在本地保存文件,名称也默认为pdf.pdf
如何强制文件名?

我尝试了以下其他不起作用的东西:

           response.setHeader("Content-Disposition","inline; filename=" + filename + ".pdf" ); 

为清楚起见,我想在浏览器中显示内容(而不是直接下载)

Mon*_*ded 8

我在这里找到了解决方案

基本上,这是在web.xml中更改URL模式
的问题浏览器将使用
我曾经拥有的任何页面名称

<servlet-mapping>
        <servlet-name>PDF</servlet-name>
        <url-pattern>/pdf</url-pattern>
    </servlet-mapping>
Run Code Online (Sandbox Code Playgroud)

我替换了

<servlet-mapping>
        <servlet-name>PDF</servlet-name>
        <url-pattern>/pdf/*</url-pattern>
    </servlet-mapping>
Run Code Online (Sandbox Code Playgroud)

使用http://wherever/pdf/filename.pdf?param1=va1...将文件名更改为"filename.pdf"来调用servlet