ImageServlet
画像はバイナリデータでsetもgetもしています。
(レシピサイトの例)
**********************************************************************************************
src="imageServlet"
で飛ばします。
**********************************************************************************************
ImageServlet.java
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//レシピIDを取得
String recipeId = request.getParameter("recipeId");
//レシピの情報を検索
RecipeDto recipeDto = new RecipeDto();
recipeDto = RecipeDao.findImage(recipeId);
response.setContentType("image/jpeg");
//レシピの画像データをレスポンスに書き込む
OutputStream os = response.getOutputStream();
os.write(recipeDto.getImage());
}
**********************************************************************************************
Dao DBからimageなどをもらう
public static RecipeDto findImage(String recipeId) {
Connection conn = ConnectionManager.getConnection();
StringBuffer sb = new StringBuffer();
sb.append("SELECT");
sb.append(" image");
sb.append(" ,mimetype");
sb.append(" ,imagename");
sb.append(" FROM");
sb.append(" recipe");
sb.append(" WHERE");
sb.append(" recipeno = ?;");
PreparedStatement ps = null;
RecipeDto recipeDto = new RecipeDto();
try {
ps = conn.prepareStatement(sb.toString());
ps.setString(1, recipeId);
ResultSet rs = ps.executeQuery();
while(rs.next()){
recipeDto.setImage(rs.getBytes("IMAGE"));
recipeDto.setImageName(rs.getString("IMAGENAME"));
recipeDto.setMimetype(rs.getString("MIMETYPE"));
}
} catch (SQLException e) {
e.printStackTrace();
}
return recipeDto;
}
**********************************************************************************************