您的位置:首页 > 数据库

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

2011-08-12 14:02 459 查看

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

环境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>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: