JSP保存文件后页面跳转问题
private void doDown(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {
RequestDispatcher rd = null;
HSSFWorkbook workBook = null;
try{
workBook = writeToExcelSonotaMH(req, list);
if (workBook == null) {
rd = req.getRequestDispatcher(SontaCommon.DOWNLOAD_JSP);
rd.forward(req, res);
} else {
String downloadFileName = Common.XLS;
res.reset();
res.setContentType( "application/x-msexcel;charset=Shift_JIS ");
res.setHeader( "Content-Disposition ", "attachment; filename=\ " "
+ CommonUtil.toUtf8String(downloadFileName)
+ "\ " "
);
workBook.write(res.getOutputStream());
}
rd = req.getRequestDispatcher(SontaCommon.DOWNLOAD_JSP);
}catch (Exception ce)
{
} finally
{
}
}
当文件被保存或者是取消后,当前的DOWLOAD画面可以被跳转到其他的画面么,这么写跳不出去不知道为什么,谢谢各位大虾.
[解决办法]
中科院计算所培训中心!!可以帮你解决技术问题!!
如何打造java程序员的职场持久力 大型免费公开课!!
主讲教师:杨少波老师
中科院副研究员、副校长、北京交通大学硕士生导师、首席技术总监、
讲座时间:2007年7月7日 14:00—16:30
讲座地点:中关村958楼中科天博大厦
与会者可参加现场抽奖,精美礼品等你拿!!!
咨询电话:82661259
[解决办法]
第二个 rd = req.getRequestDispatcher(SontaCommon.DOWNLOAD_JSP);
后面是 不是少了个 rd.forward(req, res);
另外你workBook == null时侯可以转过去吗?如果不行抱啥错?
SontaCommon.DOWNLOAD_JSP 这个常量的路径写的对吗?
[解决办法]
用这个试一下 rd = req.getRequestDispatcher(SontaCommon.DOWNLOAD_JSP).forward(req, res);
[解决办法]
up
[解决办法]
把finally去掉,在catch里加上ce.printStackTrace()再看看
[解决办法]
在forward之前如果往缓冲区里写入了内容,只要该内容没有被真正的输出到客户端
遇到这个,一般可以用js来提出跳转功能。
跟asp里面的redirect一样的毛病
[解决办法]
再加一个线程?
[解决办法]
RequestDispatcher本身就跳不出去,可以用request.sendRedirect跳出去
[解决办法]
用request.sendRedirect的话,就算能跳转到第二页面页接不到相应的变量值。
你这段代码似乎写的不是地方,最好不要写在控制层,应该写在业务层,这样能避免一些不必要的麻烦。个人建议你把这段功能代码单独写成一个类放在业务层,留个接口就行,然后在ACTION类调用,这样可以避免控制层跳转发生错误的几率。
个人小小建议,没帮什么忙,所以不许给分。呵呵!
[解决办法]
上面有答案了