`
xurichusheng
  • 浏览: 335765 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

jsp页面显示二进制图片

阅读更多

 

1. DAO层

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

/**
 * @Title: getAlfterImgById
 * @deprecated: 根据图像id查找二进制图像
 * @param imageId
 *            图像id
 * @return byte[]
 * @throws Exception
 * @author 
 * @date 2014-11-5
 */
@Override
public Blob getAlfterImgById(String imageId) throws Exception {

	Connection conn = null;
	PreparedStatement ps = null;
	ResultSet rs = null;

	try {
		// TODO 获取java.sql.Connection
		conn = ...;
		
		// ALFTER_IMG 在数据库中的类型为 BLOB, IMAGE_ID 为主键
		String sql = "SELECT ALFTER_IMG FROM HW_IMAGE WHERE IMAGE_ID = ?";

		ps = conn.prepareStatement(sql);

		ps.setString(1, imageId);

		rs = ps.executeQuery();

		if (rs.next()) {// 根据主键查询,只会返回一个结果
			return rs.getBlob("ALFTER_IMG");
		}

	} catch (Exception e) {
		log.error("get alfterImg by imageId fail:" + e.getMessage(), e);
		throw e;
	} finally {
		// TODO close ResultSet
		// TODO close PreparedStatement
		// TODO close/release Connection
	}

	return null;
}

 

2. service 层

service方法省略,无非调用dao层方法。

 

3. controller/action 层

本例使用的是 spring 3.2.4.RELEASE,同样也适用于 Struts2、Servlet。

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import javax.servlet.http.HttpServletResponse;
import java.io.InputStream;
import java.io.OutputStream;
/**
 * @Title: displayAlfterImg
 * @deprecated: 显示分析后的二进制图片
 * @return String
 * @author 
 * @date 2014-11-5
 */
@RequestMapping("/displayAlfterImg")
public String displayAlfterImg(@RequestParam("imageId") String imageId,
		HttpServletResponse resp) {

	InputStream is = null;
	OutputStream os = null;

	try {
		// 调用service层方法
		Blob blob = hwImageService.getAlfterImgById(imageId);

		log.info("get alfterImgBy Id,the result is:" + blob);

		if (null != blob) {

			is = blob.getBinaryStream();

			resp.setContentType("image/jpeg");

			os = resp.getOutputStream();

			int num = (int) blob.length();

			byte buf[] = new byte[num];

			while ((num = is.read(buf)) != -1) {
				os.write(buf);
			}
		}

	} catch (Exception e) {
		log.error("display alfterImg fail:" + e.getMessage(), e);
	} finally {
		IOUtils.closeStream(is, os);
	}

	return null;
}

 

4. jsp

jsp上直接使用 <img>标签

<img width="333" height="249" 
	src="${ctx}/hw/image/displayAlfterImg?imageId=${reportVO.imageId }"/>

 

分享到:
评论

相关推荐

    SmartUpload+JSP上传案例

    首先进入上传页面,form表单采用post请求,并含有二进制文件,entype设置二进制上传文件类型,通过提交common.jsp实现SmartUpload上传然后跳转到对应的页面利用EL表达式显示上传的图片。

    JavaScript网页特效范例宝典源码

    实例221 当鼠标经过图片时显示图片 344 实例222 改变图片获取焦点时的状态 345 实例223 抖动的图片 346 实例224 鼠标移动放大图片 347 8.3 图片与时间相关操作 349 实例225 定时隐藏图片 349 实例226 根据时间变换...

    JDBC 3.0数据库开发与设计

    目录 第1章 JDBC概述 1.1 JDBC简介 1.2 JDBC3.0规范 1.3 JDBC3.0 API的新特点 1.3.1 JDBC 3.0 API的一致性 ...9.3.2 将数据库的图象二进制数据显示成图片 9.4 Java开发中的其他技术 9.5 本章小结

    java源码包---java 源码 大量 实例

     Java二进制IO类与文件复制操作实例,好像是一本书的例子,源代码有的是独立运行的,与同目录下的其它代码文件互不联系,这些代码面向初级、中级Java程序员。 Java访问权限控制源代码 1个目标文件 摘要:Java源码,...

    400个DreamWeaver插件

    此文件定义了某类型的文件以二进制或者文本方式ftp mxp/自动将窗口最大化 mxp/由MyComputer.com提供的一套投票程序,需要注册,使用烦琐 mxp/用来在Dreamweaver环境下编辑安装目录下的Extensions.txt文件,此文件...

    java源码包2

     Java二进制IO类与文件复制操作实例,好像是一本书的例子,源代码有的是独立运行的,与同目录下的其它代码文件互不联系,这些代码面向初级、中级Java程序员。 Java访问权限控制源代码 1个目标文件 摘要:Java源码...

    java源码包3

     Java二进制IO类与文件复制操作实例,好像是一本书的例子,源代码有的是独立运行的,与同目录下的其它代码文件互不联系,这些代码面向初级、中级Java程序员。 Java访问权限控制源代码 1个目标文件 摘要:Java源码...

    java源码包4

     Java二进制IO类与文件复制操作实例,好像是一本书的例子,源代码有的是独立运行的,与同目录下的其它代码文件互不联系,这些代码面向初级、中级Java程序员。 Java访问权限控制源代码 1个目标文件 摘要:Java源码...

    JAVA上百实例源码以及开源项目

     Java二进制IO类与文件复制操作实例,好像是一本书的例子,源代码有的是独立运行的,与同目录下的其它代码文件互不联系,这些代码面向初级、中级Java程序员。 Java访问权限控制源代码 1个目标文件 摘要:Java源码,...

    JAVA上百实例源码以及开源项目源代码

     Java二进制IO类与文件复制操作实例,好像是一本书的例子,源代码有的是独立运行的,与同目录下的其它代码文件互不联系,这些代码面向初级、中级Java程序员。 Java访问权限控制源代码 1个目标文件 摘要:Java源码,...

    成百上千个Java 源码DEMO 4(1-4是独立压缩包)

    Java二进制IO类与文件复制操作实例 16个目标文件 内容索引:Java源码,初学实例,二进制,文件复制 Java二进制IO类与文件复制操作实例,好像是一本书的例子,源代码有的是独立运行的,与同目录下的其它代码文件互不联系...

    成百上千个Java 源码DEMO 3(1-4是独立压缩包)

    Java二进制IO类与文件复制操作实例 16个目标文件 内容索引:Java源码,初学实例,二进制,文件复制 Java二进制IO类与文件复制操作实例,好像是一本书的例子,源代码有的是独立运行的,与同目录下的其它代码文件互不联系...

    java范例开发大全源代码

     实例146 复制图片 219  实例147 随机读写Java类文件 221  第3篇 Java面向对象编程  第8章 面向对象(教学视频:72分钟) 226  8.1 类 226  实例148 简单的通讯录类 226  实例149 简单的长度单位...

    Java范例开发大全 (源程序)

     实例146 复制图片 219  实例147 随机读写Java类文件 221  第3篇 Java面向对象编程  第8章 面向对象(教学视频:72分钟) 226  8.1 类 226  实例148 简单的通讯录类 226  实例149 简单的长度单位转换类...

    java范例开发大全(pdf&源码)

    实例146 复制图片 219 实例147 随机读写Java类文件 221 第3篇 Java面向对象编程 第8章 面向对象(教学视频:72分钟) 226 8.1 类 226 实例148 简单的通讯录类 226 实例149 简单的长度单位转换类 227 实例150 卡车和...

    java范例开发大全

    第1篇 Java编程基础 ...实例287 下载的页面不丢失链接 559 实例288 如何对网页进行重新定向 560 实例289 在Internet上搜索对象 560 实例290 LAN使用代理服务器 562 实例291 BBS论坛服务器端 567 实例292 ...

    Java范例开发大全(全书源程序)

    实例146 复制图片 219 实例147 随机读写Java类文件 221 第3篇 Java面向对象编程 第8章 面向对象(教学视频:72分钟) 226 8.1 类 226 实例148 简单的通讯录类 226 实例149 简单的长度单位转换类 227 实例150...

    fso浏览54646465465464564

    '显示系统磁盘信息 Sub Drive() Dim oDrive,Islight %&gt; &lt;title&gt;FSO文件浏览器 - 系统磁盘信息 ; charset=GB2312"&gt; &lt;tr&gt;&lt;th&gt;FSO文件浏览器 - 系统磁盘信息&lt;/th&gt;&lt;/th&gt; &lt;tr&gt;&lt;th width="10%"&gt;盘符&lt;/th&gt;&lt;th ...

Global site tag (gtag.js) - Google Analytics