jsp文件下载处理实例源码介绍。
<%
if(request.getAttribute(“apk”)!=null)
{
try{
AnApkSoftInfo apk=(AnApkSoftInfo)request.getAttribute(“apk”);
String url=apk.getSoftDownPath().trim();
URL surl=new URL(url); //连接服务器
String filename = apk.getSoftName().trim()+”.apk”;
filename = URLEncoder.encode(filename, “UTF-8″);
//String filepath=request.getRealPath(url);
response.setContentType(“application/x-download”);
response.setHeader(“Location”,filename);
response.setHeader(“Cache-Control”, “max-age=” + 10000);
//filename应该是编码后的(utf-8)
response.setHeader(“Content-Disposition”, “attachment; filename=” + filename);
OutputStream outputStream = response.getOutputStream();
InputStream inputStream = surl.openStream();
byte[] buffer = new byte[100];
int i = -1;
while ((i = inputStream.read(buffer)) != -1) {
if(outputStream!=null)
{
outputStream.write(buffer, 0, i);
}
}
outputStream.flush();
outputStream.close();
inputStream.close();
outputStream = null;
}catch(Exception ex)
{
}finally{
out.clear();
out = pageContext.pushBody();
}
}
else
{
response.sendRedirect(“web_busy.jsp”);
}
%>
加粗的地方用来处理jsp异常:getOutputStream() has already been called for this response