2016-01-26 8 views
0

Вот мой код JSP и мой сервлет код в получении изображениякак отобразить блоб изображение из базы данных в JSP

newJSP.jsp

<html> 
<body> 
    <form action="newServlet" method="GET"> 
     id &nbsp;&nbsp;<input type="text" name="id"><br> 
     <input type="submit"> 
    </form> 
</body> 

NewServlet

@WebServlet("/image/*") 

общественный класс newServlet распространяется HttpServlet {

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
    LReceiptsDAO lrDAO = new LReceiptsDAO(); 
    // Get ID from request. 
    int imageId = Integer.parseInt(request.getParameter("id")); 

    // Check if ID is supplied to the request. 
    if (imageId == 0) { 
     // Do your thing if the ID is not supplied to the request. 
     // Throw an exception, or send 404, or show default/warning image, or just ignore it. 
     response.sendError(HttpServletResponse.SC_NOT_FOUND); // 404. 
     return; 
    } 

    // Lookup Image by ImageId in database. 
    // Do your "SELECT * FROM Image WHERE ImageID" thing. 
    byte[] image = lrDAO.getReceiptFile(imageId); 

    // Check if image is actually retrieved from database. 
    if (image == null) { 
     // Do your thing if the image does not exist in database. 
     // Throw an exception, or send 404, or show default/warning image, or just ignore it. 
     response.sendError(HttpServletResponse.SC_NOT_FOUND); // 404. 
     return; 
    } 

    // Init servlet response. 
    response.reset(); 
    response.setContentType("image/*"); 
    response.setContentLength(image.length); 

    // Write image content to response. 
    response.getOutputStream().write(image); 
} 

}

Я не знаю, как показать содержание изображения в другой файл JSP. Есть ли способ, что я могу перенаправить на новый JSP и показать его там через этот код:

ServletContext context = getServletContext(); 
     request.setAttribute("ca", c); 
     request.setAttribute("bList", bList); 
     RequestDispatcher dispatch = context.getRequestDispatcher("/Accounting_CashAdvance_PrepareVoucher.jsp"); 
     dispatch.forward(request, response); 

Я ценю тех, кто будет отвечать на мой вопрос. Спасибо!

+0

Работает ли ваш сервлет, когда вы вызываете его напрямую? Мне кажется, что тип контента должен быть конкретным - 'image/jpeg',' image/gif', 'image/png' и т. Д. – RealSkeptic

ответ

1

Возьмите новый JSP. В теле, просто поместите метку img.

<html> 
<body> 

<img src="/image"/> 

</body> 
</html> 
+0

Как это сделать? Мне очень жаль просить, потому что я новичок в этом. – user3418987

Смежные вопросы