`

Struts 2 完成直接输出流到浏览器

阅读更多
Struts 2 完成直接输出流到浏览器
2008年10月17日 星期五 上午 10:30

// 告诉Struts 执行完 Action 就行了,不用再去调用结果响应的操作
ActionContext.getContext().getActionInvocation().getProxy().setExecuteResult(false);

// 取得 HttpServletResponse
HttpServletResponse response = ServletActionContext.getResponse();

// 下面是输出(一定要注意编码)
        InputStream in = null;
        try {
            response.setContentType("xls");
            response.setHeader("Content-Disposition", "attachment; filename=" + encode(fileName + ".xls"));
           
            OutputStream os = response.getOutputStream();
           
            in = new FileInputStream(file);
            int tp = in.read();
            while (tp != -1) {
                response.getOutputStream().write(tp);
                tp = in.read();
            }
            os.flush();
        } catch (Throwable e) {
            logger.info("文件下载失败!", e);
            throw new RuntimeException("文件下载失败!", e);
        } finally {
            try {
                in.close();
            } catch (IOException e) {
                logger.info("关闭流失败!", e);
                throw new RuntimeException("关闭流失败!", e);
            }
        }

分享到:
评论

相关推荐

    struts2+poi实现导出Excel文件

    然后,将这个输出流作为输入流提供给 Struts2 的结果配置,通过 `HttpServletRequest` 获取请求响应对象,设置响应头(如 Content-Type 和 Content-Disposition),最后将输出流写入响应输出流,完成文件下载。...

    jfreechart 与struts2的柱状图以及折线图例子

    在Struts2中,我们可以将HttpServletResponse的OutputStream绑定到Action的返回值上,这样图表就会被直接输出到浏览器。 4. **Struts2结果类型配置**: 在Struts2的配置文件中,我们需要定义一个结果类型,指定当...

    原创struts2讲义2.pdf

    OGNL标签是Struts2标签库中的一个重要组成部分,它们允许开发者在JSP页面中直接使用OGNL表达式进行数据访问和处理。 ##### 5.3 功能性标签详解 除了OGNL标签外,Struts2还提供了许多功能性标签,如append、...

    struts1和struts2分别实现文件上传下载功能

    最后,Servlet将文件内容写入到响应输出流中,完成下载。 接下来,我们来看看Struts2的处理方式。Struts2同样依赖`commons-fileupload`库,但在处理方式上更加简洁。在Action类中,你可以定义一个`File`类型的字段...

    JFreeChart+Struts2实践例子

    第三种实践是利用Struts2的流结果类型(Stream Result)来直接输出图像流。这样,浏览器可以直接显示由服务器生成的图表,而无需先保存到服务器或客户端的硬盘上。 第四种方法是将图表作为附件提供下载。在Action中...

    Java Struts2+poi插件 实现导出Excel

    1. **Action配置**:在Struts2的配置文件中,为导出Excel的请求定义一个Action,设置其结果类型为StreamingResult或StreamingAction,这样可以直接将文件流输出到客户端。 2. **创建Workbook对象**:在Action的执行...

    struts2 result type 介绍

    3. **Stream**:用于处理需要流式传输的内容,比如下载文件或图片,它能直接将数据写入到HTTP响应的输出流中。 4. **Httpheader**:允许设置HTTP响应头,比如设置缓存控制、内容类型等。 开发者还可以自定义Result ...

    struts2+jxl导出excel

    通常,我们会配置一个`stream`结果类型,这样可以将Excel文件作为流直接发送到客户端。 ```xml <param name="contentType">application/vnd.ms-excel <param name="contentDisposition">attachment;filename=...

    struts2整合jfreechart

    使用`<s:property value="byteArray" />`标签,并设置`escape="false"`,以防止字符转义,这样Struts2会自动处理这个字节数组,将其作为图像数据输出。 最后,通过发送HTTP请求到对应的Struts2 Action,用户就可以...

    struts2+poi实现excel文件的导出

    1. `<result name="success" type="stream">`:指定当 Action 执行成功后,返回的结果类型为流,这使得我们可以直接将生成的 Excel 文件内容输出到浏览器。 2. `<param name="contentType">application/vnd.ms-excel...

    struts2面试题

    结果可能是转发到一个JSP页面,重定向到另一个URL,或者进行其他类型的输出,如JSON或XML。 7. **响应客户端**: 最后,FilterDispatcher将Action返回的结果转换成HTTP响应,发送回客户端浏览器。浏览器接收到响应...

    Struts2+Spring+MyBatis环境搭建

    【Struts2+Spring+MyBatis环境搭建】是指在Java Web开发中整合这三个开源框架,构建一个完整的MVC架构。Struts2作为表现层框架,负责处理HTTP请求和视图展示;Spring作为业务层框架,提供依赖注入和事务管理等功能;...

    创建一个简单的struts2的步骤

    Struts2是一个流行的Java Web...通过以上步骤,你将完成一个基本的Struts2登录应用。在实际开发中,你可能还需要处理错误、添加更多复杂的业务逻辑、集成数据库操作以及实现其他高级特性,如拦截器、插件和国际化等。

    MyEclipse Eclipse iReport JasperReport Struts2

    6. 配置Struts2 ActionResult,返回报表内容到浏览器。 以上就是MyEclipse、Eclipse、iReport、JasperReport和Struts2整合的基本步骤和相关知识点。通过这种整合,开发者可以在Web应用中轻松地创建和展示动态报表,...

    struts2和jfreechart集成的一个小示例

    6. **Struts2 Action响应**:在Struts2的Action中,你可以将生成的图表写入到HttpServletResponse的输出流中,这样在浏览器端就可以显示出来。记得设置正确的MIME类型,如"image/jpeg"或"image/png"。 7. **展示在...

    struts2 文件的上传与下载

    Struts2框架本身并不直接处理`multipart/form-data`类型的请求,而是依赖于第三方组件来完成这一任务。Struts2默认使用的是Apache Commons FileUpload框架进行文件上传的处理。 1. **配置文件上传框架**:为了支持...

    Struts2XLSDownload:Struts2XLS下载

    6. **HTTP 响应**: 在 Struts 2 中,可以通过 `ServletResponse` 接口的 `getOutputStream()` 方法获取到输出流,然后将 POI 生成的 XLS 文件内容写入这个流,完成文件发送。 7. **拦截器的使用**: Struts 2 的拦截...

    jspGraphic(浅析web图形报表的实现(struts+jfreechat) )

    通常,这可以通过设置Action的返回值来决定视图的渲染方式,例如,可以将图像作为流直接输出到响应体,或者将图像路径存储在session或request中,然后在JSP页面中显示。 6. **在JSP页面上展示**:在JSP页面中,可以...

    二进制输出图片

    标签“action输出二进制图片”指的是在Web应用中,使用Action组件将服务器端的二进制图片数据直接输出到HTTP响应,供前端展示。这在很多场景下都很实用,比如用户上传图片到服务器,服务器存储二进制数据,然后在...

Global site tag (gtag.js) - Google Analytics