在Java / .jsp中是否有办法设置内容类型等...以便指向pdf的链接提示用户保存它而不是在浏览器的相同或不同窗口中打开它?我已经看到了一些如何在PHP中执行此操作的示例,但不是Java。
不确定编译语言和解释语言是否与我无法找到Java解决方案有关。 (随机思考)
答案 0 :(得分:5)
您需要设置Content-Type
和Content-Disposition
标头。假设response
是HttpServletResponse
个对象,
String filename = "foo.pdf";
response.setHeader("Content-Type", "application/pdf");
response.setHeader("Content-Disposition", "attachment;filename=\"" + filename + "\"");
答案 1 :(得分:3)
如果PDF不是由servlet自动生成或从外部位置读取,而是仅存在于公共webcontent中,那么就可以在Filter
的URL模式上映射*.pdf
(或者在doFilter()
方法中执行以下工作的更具体/通用的。
HttpServletRequest req = (HttpServletRequest) request;
HttpServletResponse res = (HttpServletResponse) response;
String filename = req.getRequestURI().substring(req.getRequestURI().lastIndexOf('/') + 1);
res.setHeader("Content-Disposition", "attachment;filename=\"" + filename + "\"");
chain.doFilter(request, response);
答案 2 :(得分:2)
您想设置Content-disposition标题