4

可能重复:
如何更改 servlet 将 PDF 流式传输到的浏览器页面的标题?

我想在浏览器中显示 PDF 文件,所以我将 PDF 发送到响应输出流。我设置了标题:

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

但我对浏览器标题有疑问。FireFox 显示 servlet 标题。

4

2 回答 2

1

出现在浏览器地址栏中的请求 URL 必须包含 PDF 文件名才能使其以您想要的方式工作。如果您将 PDF servlet 映射到类似 as 的前缀 URL 模式/pdf/*而不是类似 as 的静态路径/pdf,这会更容易,这样它也可以在 上调用/pdf/blahblah/pdf/foo.ext依此类推。

例如

<a href="pdf/filename.pdf">

结合

@WebServlet("/pdf/*")
public class PdfServlet extends HttpServlet {

    @Override
    public void doGet(...) {
        String filename = request.getPathInfo().substring(1); // filename.pdf
        // ...
    }

}

另一个优点是IE 浏览器中的另存为文件名也将被修复。该浏览器即从请求 URL 的最后一个路径而不是从内容处置标头中提取它。

于 2012-09-11T12:50:51.950 回答
-3

如果您需要为生成的HTML页面设置标题:-

尝试这个 :

out.println("  <HEAD><TITLE>Your Title for browser</TITLE></HEAD>");

servlet. 然后servlet将生成动态页面,上面的代码将标题添加到页面。

于 2012-09-11T12:23:42.633 回答