java http响应头,java – HTTP响应标头内容处理附件
背景
將XML文檔寫入瀏覽器的響應流,并導致瀏覽器顯示“另存為”對話框。
問題
考慮以下的download()方法:
HttpServletResponse response = getResponse();
BufferedWriter bw = new BufferedWriter( new OutputStreamWriter(
response.getOutputStream() ) );
String filename = "domain.xml";
String mimeType = new MimetypesFileTypeMap().getContentType( filename );
// Prints "application/octet-stream"
System.out.println( "mimeType: " + mimeType );
// response.setContentType( "text/xml;charset=UTF-8" );
response.setContentType( mimeType );
response.setHeader( "Content-Disposition", "attachment;filename="
+ filename );
bw.write( getDomainDocument() );
bw.flush();
bw.close();
在Firefox中,XML內容顯示在瀏覽器窗口中。在IE 7中,XML內容不顯示 – 您必須查看文檔源。兩種情況都不是預期的結果。
該網頁使用以下代碼進行按鈕:
生成的XML不以開頭,而XML內容類似于:
更新#1
請注意以下代碼行:
response.setHeader( "Content-Disposition", "attachment;filename=" + filename );
更新#2
使用< a4j:commandButton ... />是問題;常規的< h:commandButton ... />按預期執行。使用< h:commandBUtton ... />防止< a4j:outputPanel ... />從刷新任何錯誤消息。
Mime類型
以下mime類型不會觸發“另存為”對話框:
>“application / octet-stream”
>“text / xml”
>“text / plain”
題
什么更改會導致a4j:commandButton觸發“另存為”對話框,以便提示用戶保存XML文件(如domain.xml)?
謝謝。
總結
以上是生活随笔為你收集整理的java http响应头,java – HTTP响应标头内容处理附件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 计算1+2+……+N的和。
- 下一篇: php生成网页缩略图接口,php生成网站