文件在jsp页面输出时,会打开一个提示“打开”“保存”的对话框

如果在后台直接输出文件,文件类型是txt、xml类型时,jsp页面链接时会直接打开,而不会提示“保存”,所以,进行了如下操作,可解决此问题。

将后台的一个文件流直接在jsp页面上输出

<%@ page language="java" import="java.io.*" pageEncoding="GBK"%>

<%
response.setCharacterEncoding("gb2312");
request.setCharacterEncoding("gb2312");
String file="";
String doc = (String)request.getAttribute("exportFileName");//为后台的文件流
response.setContentType("text/xml");//此项内容随文件类型而异 默认是html类型
response.setHeader("content-disposition", "attachment;filename=" +file); //如果不加这句 则直接打开xml文件
out.println(doc);//输出到文件

%>

(1)Content-Type的作用

该实体头的作用是让服务器告诉浏览器它发送的数据属于什么文件类型。

例如:当Content-Type 的值设置为text/html和text/plain时,前者会让浏览器把接收到的实体内容以HTML格式解析,后者会让浏览器以普通文本解析.

(2)Content-Disposition 的作用

当Content-Type 的类型为要下载的类型时 , 这个信息头会告诉浏览器这个文件的名字和类型。

Content-Disposition中指定的类型是文件的扩展名,并且弹出的下载对话框中的文件类型图片是按照文件的扩展名显示的,点保存后,文件以filename的值命名,保存类型以Content中设置的为准。

注意:在设置Content-Disposition头字段之前,一定要设置Content-Type头字段。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值