一段下载的代码,却有个让我百思不得其解的问题:<%
if (request.getParameter("start")==null){
return;
}
try {
//session.removeAttribute("cvs_out");
com.nec.jp.supportal.search.SearchFormBean bean=new com.nec.jp.supportal.search.SearchFormBean();
bean.setKeyword(request.getParameter("keyword"));
bean.setOrder(request.getParameter("order"));
bean.setSort(request.getParameter("sort"));
com.nec.jp.supportal.search.SearchAction action=new com.nec.jp.supportal.search.SearchAction();
java.util.List list = action.getCSVData(bean);javax.servlet.ServletOutputStream sout=response.getOutputStream();
response.setHeader("Content-disposition","attachment;filename="+"検索結果.csv");
response.setContentType("application/x-csv"); for (int i=0;i<list.size();i++){
byte[] bCSVRow = ((String)list.get(i)).getBytes("MS932");
sout.write(bCSVRow);//这样写可以弹出下载对话框
//sout.write("hello".getBytes());//这样写不能弹出下载对话框
}
throw new Exception("12345");
} catch(Exception ex) {
response.sendRedirect("http://www.163.com");
}
%>不能弹出对话框的时候,response.sendRedirect("http://www.163.com");好用,能弹出的时候,response.sendRedirect("http://www.163.com");这句话不起作用,我始终不明白这是为什么,很奇怪呀.难道是java的bug吗
if (request.getParameter("start")==null){
return;
}
try {
//session.removeAttribute("cvs_out");
com.nec.jp.supportal.search.SearchFormBean bean=new com.nec.jp.supportal.search.SearchFormBean();
bean.setKeyword(request.getParameter("keyword"));
bean.setOrder(request.getParameter("order"));
bean.setSort(request.getParameter("sort"));
com.nec.jp.supportal.search.SearchAction action=new com.nec.jp.supportal.search.SearchAction();
java.util.List list = action.getCSVData(bean);javax.servlet.ServletOutputStream sout=response.getOutputStream();
response.setHeader("Content-disposition","attachment;filename="+"検索結果.csv");
response.setContentType("application/x-csv"); for (int i=0;i<list.size();i++){
byte[] bCSVRow = ((String)list.get(i)).getBytes("MS932");
sout.write(bCSVRow);//这样写可以弹出下载对话框
//sout.write("hello".getBytes());//这样写不能弹出下载对话框
}
throw new Exception("12345");
} catch(Exception ex) {
response.sendRedirect("http://www.163.com");
}
%>不能弹出对话框的时候,response.sendRedirect("http://www.163.com");好用,能弹出的时候,response.sendRedirect("http://www.163.com");这句话不起作用,我始终不明白这是为什么,很奇怪呀.难道是java的bug吗
解决方案 »
- 新手求救莫名404错误
- checkbox
- 发邮件的时候老是说找不到文件!!!
- 在TomCat中运行JSP文件出现Unable to load class for JSP 的问题。。[有错误图片]
- 各位高手请进-----------------------------------一个小问题--------在线等待-----满分
- 为什么在servlet出错 而在jsp页面可以
- 问大家一个比较简单的问题,,,希望大家进来帮我看一下,谢谢!!!!!!!
- Response 出错!!------------------在线等待
- 救命呀!!!!!在一个网页中,我提交表单到不同页面,但提交不了
- 请问MethodInvocation是位于什么包下面的?
- sybase数据库text字段用java输出问题
- 数据库连接问题
//session.removeAttribute("cvs_out");
//com.nec.jp.supportal.search.SearchFormBean bean=new com.nec.jp.supportal.search.SearchFormBean();
//bean.setKeyword(request.getParameter("keyword"));
//bean.setOrder(request.getParameter("order"));
//bean.setSort(request.getParameter("sort"));
//com.nec.jp.supportal.search.SearchAction action=new com.nec.jp.supportal.search.SearchAction();
//java.util.List list = action.getCSVData(bean);javax.servlet.ServletOutputStream sout=response.getOutputStream();
response.setHeader("Content-disposition","attachment;filename="+"1.txt");
response.setContentType("application/octet-stream");
byte[] s = "hello".getBytes();
for(int i=0;i<10;i++){
sout.write(s);//这样写不能弹出下载对话框
}
sout.close();
//for (int i=0;i<list.size();i++){
//byte[] bCSVRow = ((String)list.get(i)).getBytes("MS932");
//sout.write(bCSVRow);//这样写可以弹出下载对话框
// }%>
这样写是可以的.
<%
//session.removeAttribute("cvs_out");
//com.nec.jp.supportal.search.SearchFormBean bean=new com.nec.jp.supportal.search.SearchFormBean();
//bean.setKeyword(request.getParameter("keyword"));
//bean.setOrder(request.getParameter("order"));
//bean.setSort(request.getParameter("sort"));
//com.nec.jp.supportal.search.SearchAction action=new com.nec.jp.supportal.search.SearchAction();
//java.util.List list = action.getCSVData(bean);javax.servlet.ServletOutputStream sout=response.getOutputStream();
response.setHeader("Content-disposition","attachment;filename="+"検索結果.csv");
response.setContentType("application/x-csv");
byte[] s = "hello".getBytes();
for(int i=0;i<10;i++){
sout.write(s);//这样写不能弹出下载对话框
}
sout.close();
//for (int i=0;i<list.size();i++){
//byte[] bCSVRow = ((String)list.get(i)).getBytes("MS932");
//sout.write(bCSVRow);//这样写可以弹出下载对话框
// }%>