用JSP从数据库中读取图片并显示在网页上

本文档介绍了如何在JSP中从MySQL数据库读取BLOB类型的图像数据,并将其显示在网页上。首先在MySQL创建了一个名为PHOTO的表,存储图像数据。然后,展示了一个名为show.jsp的JSP文件,该文件负责获取请求参数,连接到数据库,读取指定编号的照片,将Blob数据转换为JPEG格式并返回给浏览器。最后,提供了一个简单的HTML页面(index.html),其中包含一个指向show.jsp的<img>标签,用于显示图片。
 

环境mysql tomcat:

<1>先在mysql下建立如下的table. 并insert图像.

mysql.sql文件如下:

CREATE TABLE photo ( photo_no int(6) unsigned NOT NULL auto_increment, image blob, PRIMARY KEY (`photo_no`) )

<2>把show.jsp放在tomcat的任意目录下. show.jsp作用:从数据库中读出blob,并产生image/jpg.

show.jsp文件如下:

<%@ page contentType="text/html; charset=gbk" %> <%@ page import="java.io.*"%> <%@ page import="java.sql.*, javax.sql.*" %> <%@ page import="java.util.*"%> <%@ page import="java.math.*"%>

<% String photo_no = request.getParameter("photo_no");

//mysql连接 Class.forName("com.mysql.jdbc.Driver").newInstance(); String URL="jdbc:mysql://localhost:3306/job?user=root&password=111111"; Connection con = DriverManager.getConnection(URL);

//oracle连接 //String URL="jdbc:oracle:thin@localhost:1521:orcl2"; //user="system"; //password="manager"; //Connection con = DriverManager.getConnection(URL,user,password);

try{ // 准备语句执行对象 Statement stmt = con.createStatement();

String sql = " SELECT * FROM PHOTO WHERE photo_no = " photo_no; ResultSet rs = stmt.executeQuery(sql); if (rs.next()) { Blob b = rs.getBlob("photo_image"); long size = b.length(); //out.print(size); byte[] bs = b.getBytes(1, (int)size); response.setContentType("image/jpeg"); OutputStream outs = response.getOutputStream(); outs.write(bs); outs.flush(); rs.close(); } else { rs.close(); response.sendRedirect("./images/error.gif"); } } finally{ con.close(); } %>

<3>把如下文件放在show.jsp的同一目录下.

index.html文件如下:

<HTML> <HEAD> <TITLE> 图像测试 </TITLE>

</HEAD>

<BODY> <TABLE> <TR> <TD>图像测试</TD> </TR> <TR> <TD><img src="show.jsp?photo_no=2"></TD> </TR> </TABLE>

</BODY> </HTML>

 

文章整理:西部数码--专业提供域名注册虚拟主机服务 http://www.west263.com 以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值