<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<table border="1" style="border-collapse: collapse">
<tr>
<td>ID</td>
<td>名前</td>
<td>画像</td>
</tr>
<c:forEach items="${ requestScope.itemList }" var="item">
<tr>
<td><c:out value="${ item.id }" /></td>
<td><c:out value="${ item.name }" /></td>
<td><img style="width: 100px; height: 100px" src="getImage?id=${ item.id }"></td>
</tr>
</c:forEach>
</table>
</body>
</html>
DAO
package jp.co.example.dao;
import java.awt.image.BufferedImage;
import java.io.BufferedInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.imageio.ImageIO;
import jp.co.example.ConnectionManager;
public class ItemDao {
public BufferedImage selectImageById(int id) {
try (Connection conn = ConnectionManager.getConnection()){
StringBuffer sbSQL = new StringBuffer();
sbSQL.append(" select");
sbSQL.append(" IMAGE");
sbSQL.append(" from ITEM");
sbSQL.append(" where ID = ?");
PreparedStatement ps = conn.prepareStatement(sbSQL.toString());
ps.setInt(1, id);
ResultSet rs = ps.executeQuery();
if (rs.next()) {
InputStream is = rs.getBinaryStream("IMAGE");
BufferedInputStream bis = new BufferedInputStream(is);
return ImageIO.read(bis);
}
} catch (IOException | SQLException e) {
e.printStackTrace();
}
return null;
}
}
package jp.co.example;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.io.OutputStream;
import javax.imageio.ImageIO;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import jp.co.example.dao.ItemDao;
Servlet implementation class GetImageServlet
@WebServlet("/getImage")
public class GetImageServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
@see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String id = request.getParameter("id");
ItemDao dao = new ItemDao();
BufferedImage img = dao.selectImageById(Integer.parseInt(id));
response.setContentType("image/jpeg");
OutputStream os = response.getOutputStream();
ImageIO.write(img, "jpg", os);
os.flush();
}
}