JSP实现读取MySQL数据库并显示图片

1.先在MySQL数据库中建立table,表名为pic(可自己起名字),建表如下:

 

并insert图像,数据库表内容如下:

 2.新建文件

<html>
<head>
<title> 图像测试 </title>
</head>
<body>
<table>
<tr>
	<td>
		图像测试
	</td>
</tr>
<tr>
	<td>
		<img src="show.jsp?ids=15">
	</td>
</tr>
</table>
</body>
</html>

3.建立show.jsp文件

<%@ page contentType="text/html; charset=gbk" import="java.io.*,java.sql.*"%><%
    String id = request.getParameter("ids");
//mysql连接
    Class.forName("com.mysql.cj.jdbc.Driver");
    Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/usersinf" + "?useUnicode=true&characterEncoding=UTF-8",
    "root", "");
    try{
// 准备语句执行对象
        Statement stmt = con.createStatement();
        String sql = " SELECT * FROM pic WHERE id = '"+id+"'";
        ResultSet rs = stmt.executeQuery(sql);
        if (rs.next()) {
            response.setContentType("image/jpeg");
            Blob b = rs.getBlob("binfile");
            long size = b.length();
            byte[] bs = b.getBytes(1, (int)size);
            OutputStream outs = response.getOutputStream();
            outs.write(bs);
            outs.flush();
            rs.close();
        }
        else {
            rs.close();
            response.sendRedirect("./images/error.gif");
        }
    }
    finally{
        con.close();
    }%>

注意:

如使用此代码出现无法加载图片的情况,首先排除是否有失误造成的错误.

如没有自己原因造成的错误考虑如下几点:

(1)是否存在这样的问题

扫描二维码关注公众号,回复: 15336590 查看本文章

 这些换行不可以留,会在图片二进制数据最前面插入一堆\n(换行),造成图片无法显示.

解决方法:

把引入Java类合并在一起写如图:

 或者:

把下一行的<%给移到上一行的末尾,形成%><%的样子,    如........%><%@ page .........

(2)如果问题未解决,再次检查代码的末尾是否有多余的空格或回车,把他们删掉,即可显示图片.

猜你喜欢

转载自blog.csdn.net/weixin_52188227/article/details/126369662
今日推荐