首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Spring MVC outputStream

Spring MVC outputStream
EN

Stack Overflow用户
提问于 2013-04-28 13:08:48
回答 2查看 5.4K关注 0票数 0

我的问题是,我有一个程序,它生成一个文件并将其流出给用户&我有两个问题:

1)首先如何更改文件名和类型(x.sql)

2)如果在创建文件时出现异常,我希望将用户重定向到错误页面,因为当我们想要写入servlet中的outputstream时,我的方法的返回类型是void!

我的程序是这样的:

代码语言:javascript
复制
    @RequestMapping(value = "/test/{jobid}")
   public void dumpData(@PathVariable("jobid") long jobid, HttpServletResponse response) {
     try {

        response.setContentType("application/octet-stream");
        ServletOutputStream out = response.getOutputStream();
        String downloadOutput = "";
        // AM I ABLE TO SET FILENAME SO THE USER DOWNLOAD THE FILE WITH THAT NAME ?
        // DOES SETHEADER HELP ME IN THIS CASE ?

        ... (making downloadOutput String by values coming from somewhere)

        out.write(downloadOutput.getBytes("UTF-8"));
        out.flush();
        out.close();
     } catch(SomeException e){
         //WHEN THE RETURN TYPE IS VOID HOW TO REDIRECT USER TO ERROR PAGE IN CASE OF SOME PROBLEM ? 
        //(INFO:)IF WE DEFINE STRING AS RETURN TYPE THE PROGRAM WILL GET EXCEPTION 
     }
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-04-28 13:21:25

回答你的第一个问题:

代码语言:javascript
复制
response.setHeader( "Content-Disposition", "attachment;filename=" + filename );
//for zip file
response.setContentType("application/zip");

Here是各种内容类型的mime类型列表。

我找到了一个解决方案here。可以将返回类型改为字符串,出错时返回错误视图名称,否则返回null。我从这个链接中了解到,返回null和返回类型void是相似的。

票数 2
EN

Stack Overflow用户

发布于 2013-04-28 14:05:29

是什么阻止您使用response.sendRedirect(errorPage)?

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16259832

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档