`

spring mvc 将图片文件以流的方式写入到jsp页面

阅读更多

spring mvc不像struts2:

Xml代码  收藏代码
  1. <action name="TwoDimensionalCodeAction" class="com.wsg.action.TwoDimensionalCodeAction">  
  2.     <result type="stream">  
  3.                <param name="inputName">inputStream</param>    
  4.     </result>  
  5.     <result name="testForm">/form_success.jsp</result>  
  6. </action>  

 直接设置结果既可实现跳转,显示页面。

 

在spring mvc的action中需要设置response,具体如下:

@RequestMapping(value="/getpic", method = RequestMethod.GET)
public String getpic(Model model, HttpServletResponse response) throws IOException {
	response.setContentType("image/jpeg"); // 设置返回内容格式
	File file = new File("d:/a.jpg");       //括号里参数为文件图片路径
	if(file.exists()){   /如果文件存在
		InputStream in = new FileInputStream("d:/a.jpg");   //用该文件创建一个输入流
		OutputStream os = response.getOutputStream();  //创建输出流
		byte[] b = new byte[1024];  
		while( in.read(b)!= -1){ 
		os.write(b);     
		}
		in.close(); 
		os.flush();
		os.close();
	}
	return null;
}

 

这里选择相应的跳转,return null即可!

 

如果这样在把二进制流发送到页面时,response的流会出现一个问题:

 

Java代码  收藏代码
  1. threw exception [java.lang.IllegalStateException: getOutputStream() has already been called for this response] with root cause  
  2. java.lang.IllegalStateException: getOutputStream() has already been called for this response  

 

这个时候页面加上以下代码即可解决

Java代码  收藏代码
  1. <%  
  2.       out.clear();  
  3.       out=pageContext.pushBody();  
  4.      %>  

 

分享到:
评论

相关推荐

    Spring MVC使用Demo

    这通常包括安装Java Development Kit (JDK)、配置IDE(如IntelliJ IDEA或Eclipse)、添加Spring MVC的相关依赖到构建工具(如Maven或Gradle)的pom.xml或build.gradle文件中。还需要配置Web应用服务器,比如Tomcat,...

    spring3MVC 框架demo

    对于下载,Controller会返回一个`HttpServletResponse`对象,通过设置相应头信息和输出流,将文件内容写入响应,从而实现文件的下载。 ### 使用xheditor发布消息功能 xheditor是一个流行的JavaScript富文本编辑器...

    Spring3 MVC 基础学习手册

    `DispatcherServlet`是Spring MVC的核心,它负责调度请求到相应的处理器。在配置中,我们通过`init-param`指定了Spring MVC的配置文件位置,例如`contextConfigLocation`参数设置为`/WEB-INF/Config.xml`。 2. **...

    Spring.MVC学习指南.pdf

    - JSP,FreeMarker,Thymeleaf等视图技术可与Spring MVC集成,用于生成动态HTML页面。 - 使用ModelAndView或Model对象传递数据到视图。 6. **异常处理**: - `@ExceptionHandler` 注解可以在Controller中处理...

    Spring MVC入门 XML版本+注释版本

    这个入门教程将涵盖XML配置和注解配置两种方式,帮助初学者理解如何在Spring MVC中搭建基本的"Hello, World!"应用。 首先,我们从XML配置开始。在Spring MVC中,`DispatcherServlet`是入口点,它负责分发HTTP请求到...

    8-Spring-mvc-文件上传1

    - `transferTo(File dest)`:将文件内容写入到指定的目标文件。 下面是一个简单的文件上传控制器方法示例: ```java @RequestMapping("upload") public String fileUpload(@RequestParam("file") MultipartFile ...

    spring mvc入门教程

    Spring MVC是一种基于Java语言的轻量级Web应用框架,它是Spring框架的一个模块,遵循MVC设计模式,将Web层进行分离,提供了清晰的角色定义以及开发的各个组件之间的耦合关系。 **知识点一:Spring MVC架构概述** 1...

    Spring mvc 注解Demo

    Spring MVC 是一个基于Java的轻量级Web应用框架,它为构建RESTful应用程序提供了强大的支持。...实践这些示例将有助于理解和掌握Spring MVC的注解驱动开发方式,为进一步深入学习和开发复杂的Web应用奠定基础。

    spring mvc 入门案例

    Spring MVC 是一个基于 Java 的轻量级 Web 开发框架,它是 Spring 框架的一部分,专为构建可维护、高性能的 MVC(Model-View-Controller)应用程序而设计。本入门案例将带你逐步了解如何使用 Spring MVC 创建一个...

    Spring MVC入门Demo

    通过分析这个简单的 Spring MVC Demo,你可以学习到如何创建一个基本的 MVC 请求处理流程,包括请求的接收、业务处理、数据返回以及视图渲染。这将为后续深入学习和使用 Spring MVC 打下坚实的基础。

    spring mvc 框架搭建

    它基于Spring框架,提供了模型-视图-控制器(MVC)架构模式的实现,使得开发者可以将业务逻辑、数据处理和用户界面分离开来,提高代码的可读性和可测试性。 在搭建Spring MVC框架的过程中,我们需要遵循以下步骤: ...

    JAVA(spring mvc)搭建了文件上传的接口,Android已经调试成功

    - 存储文件:接收到文件后,开发者需要将文件内容写入到服务器的某个位置,可能使用`CommonsMultipartFile`进行转换并保存。 - 错误处理:考虑文件大小限制、文件类型限制等,确保上传安全。 3. **Android 客户端...

    spring3.0 mvc 注解实现helloworld输出

    在本文中,我们将深入探讨如何使用Spring 3.0 MVC框架通过注解方式实现一个简单的“Hello, World!”输出。Spring MVC是Spring框架的一部分,它为构建基于模型-视图-控制器(MVC)架构的Web应用程序提供了一个强大的...

    编写第一个 Spring MVC 程序

    在本教程中,我们将详细讲解如何编写第一个 Spring MVC 程序,涵盖其核心概念、配置以及实现过程。 1. **Spring MVC 概述** Spring MVC 为 Web 开发提供了模型-视图-控制器(MVC)架构模式,它简化了业务逻辑与...

    Jxls+Spring MVC实现Excel导出

    接下来,我们将讨论如何集成Jxls到Spring MVC项目中。首先,需要在项目的类路径下添加Jxls和Apache POI的依赖。接着,在Spring的配置文件中,定义一个视图解析器,如`InternalResourceViewResolver`,并配置对应的...

    Spring MVC框架3个入门例子

    这个例子通常会涵盖基本的Spring MVC项目结构,包括`web.xml`配置文件、`DispatcherServlet`的设置以及Spring MVC的配置文件(`servlet-context.xml`)。在`web.xml`中,你需要配置`DispatcherServlet`作为请求的前端...

    Java Spring MVC面试题

    在拦截请求中,如何拦截GET方式提交的方法,可以使用Spring MVC提供的Interceptor机制来实现。 如何在方法里面得到Request或者Session,可以使用HttpServletRequest和HttpSession对象来实现。 如果想在拦截的方法...

    spring mvc学习+数据分页+数据导入导出

    在本学习资料中,我们将深入探讨Spring MVC 3,这是一个广泛使用的版本,提供了许多改进和新特性。 首先,Spring MVC 3 提供了增强的注解支持,这使得开发者可以更方便地配置控制器和方法。`@Controller` 注解用于...

    Jett+Spring MVC实现Excel导出

    最后,我们设置响应头以指示浏览器这是一个Excel文件,并将其写入到HTTP响应流中。 为了使导出功能更加健壮,我们还可以考虑以下几点: 1. 错误处理:添加异常处理代码,以应对数据准备或模板渲染过程中的错误。 2....

    05-Spring MVC面试题.docx

    * @ResponseBody:注解在控制器方法上,表明该方法的返回值将被写入到响应体中。 * @PathVariable:注解在控制器方法的参数上,表明该参数来自于URL的路径变量。 * @RequestParam:注解在控制器方法的参数上,表明该...

Global site tag (gtag.js) - Google Analytics