Java Servlet:设置响应头时如何转义井字符?

时间:2014-04-08 22:22:12

标签: java http servlets

我的Java servlet包括以下行:

response.addHeader("Content-Disposition", "filename=myFile.pdf");

我需要在PDF文件中包含一个命名目标,作为文件名的一部分。理想情况下,我可以使用以下内容:

response.addHeader("Content-Disposition", "filename=myFile.pdf#Chapter3");

但是当我运行它时,浏览器中的网址会显示/path/to/myFile.pdf%23Chapter3而不是所需的/path/to/myFile.pdf#Chapter3

如何在“filename = myFile#Chapter3”中转义#?使用\转义会产生编译时错误。用& 035逃脱;也不起作用。

1 个答案:

答案 0 :(得分:3)

RFC 2616定义"如果用户请求将内容保存到文件中,则建议将Content-Disposition响应标头字段用作原始服务器建议默认文件名的方法。所以我不认为你可以通过你的servlet做你想做的事。也许你会对pdf中的一些脚本有更好的运气:你可以想象解析它自己的名字,在开启时动态设置它在正确的锚点。