Java 如何在新选项卡中打开PDF并在浏览器中显示(不要要求下载)?

Java 如何在新选项卡中打开PDF并在浏览器中显示(不要要求下载)?,java,pdf,browser,tabs,header,Java,Pdf,Browser,Tabs,Header,我有一个指向PDF的链接,当我点击它时,我希望它打开一个新选项卡并在新选项卡中呈现,而不是要求我下载它。我该怎么做 注意,我问这个问题是为了回答它。这些信息可以从其他答案中拼凑而成,但我希望它们都在一个地方要在新选项卡中打开链接(PDF或非PDF),您必须从 <a href="/link_to_pdf.pdf">PDF</a> 最重要的是内联。如果您放置了附件,您的浏览器将尝试下载它 秘密是在方法响应中使用InputStreamResource,而不是作为响应属性: @

我有一个指向PDF的链接,当我点击它时,我希望它打开一个新选项卡并在新选项卡中呈现,而不是要求我下载它。我该怎么做


注意,我问这个问题是为了回答它。这些信息可以从其他答案中拼凑而成,但我希望它们都在一个地方

要在新选项卡中打开链接(PDF或非PDF),您必须从

<a href="/link_to_pdf.pdf">PDF</a>

最重要的是
内联
。如果您放置了
附件
,您的浏览器将尝试下载它

秘密是在方法响应中使用InputStreamResource,而不是作为响应属性:

@GetMapping(path = "/pdf/{key}", produces = MediaType.APPLICATION_PDF_VALUE)
@ResponseBody
public InputStreamResource pdf(@PathVariable("key") String key){
    InputStream file = pdfservice.get(key);
    return new InputStreamResource(file);
}

代码很小,很简单,并且可以自我解释。如果程序员正在休息以下载PDF,那么我发布的这段代码就像ABC一样简单。
response.setContentType("application/pdf");
response.addHeader("content-disposition", "inline; filename=link_to_pdf.pdf");
@GetMapping(path = "/pdf/{key}", produces = MediaType.APPLICATION_PDF_VALUE)
@ResponseBody
public InputStreamResource pdf(@PathVariable("key") String key){
    InputStream file = pdfservice.get(key);
    return new InputStreamResource(file);
}