在提供PDF文件的Servlet中设置浏览器标题 [英] Set browser title in servlet which serves a PDF file

查看:135
本文介绍了在提供PDF文件的Servlet中设置浏览器标题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述


可能重复:


p>

Possible Duplicate:
How to change the title of a browser page which a servlet streamed a PDF to?

我想在浏览器中显示PDF文件,因此我将PDF发送到响应输出流。我设置标头:

I want to display a PDF file in browser, so I send the PDF to response output stream. I set headers:

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

但是我的浏览器标题有问题。 FireFox显示servlet标题。

But I have problem with browser title. FireFox display servlet title.

推荐答案

浏览器地址栏中显示的请求URL必须包含PDF文件名才能获取以您想要的方式工作。如果您将PDF servlet映射到诸如 / pdf / * 之类的前缀URL模式而不是诸如 / pdf之类的静态路径,则这样会更容易。 ,以便也可以在 / pdf / blahblah /pdf/foo.ext 等。

The request URL as appears in browser's address bar must contain the PDF filename in order to get it to work the way you want. This is easier if you map the PDF servlet on a prefix URL pattern something like as /pdf/* instead of a static path something like as /pdf so that it can also be invoked on /pdf/blahblah, /pdf/foo.ext and so on.

例如

<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的最后一个路径中提取它,而不是从内容处理标头中提取它。

Additional advantage is that the Save As filename in IE browser will also be fixed. That browser namely extracts it from the last path of the request URL instead of from the content disposition header.

这篇关于在提供PDF文件的Servlet中设置浏览器标题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆