Java 如何使用标记显示未存储在文件中的图像?(见说明)

Java 如何使用标记显示未存储在文件中的图像?(见说明),java,database,jsp,Java,Database,Jsp,我想在JSP中使用标记显示数据库中的图像。我如何才能使用标签中的BLOB?或者这件事有可能吗?如果没有,是否有一种方法可以将blob用于一些有意义的目的 这是我从servlet获得的代码: protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { List<Blob> blobList = new

我想在JSP中使用标记显示数据库中的图像。我如何才能使用标签中的BLOB?或者这件事有可能吗?如果没有,是否有一种方法可以将blob用于一些有意义的目的

这是我从servlet获得的代码:

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {


    List<Blob> blobList = new ArrayList<Blob>();
    String id = request.getParameter("id");

    Connection con = null;
    Statement stmt = null;
    ResultSet rs = null;

    try {
        Class.forName("oracle.jdbc.driver.OracleDriver");
        con = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe","username","password");
        stmt = con.createStatement();

        rs = stmt.executeQuery("SELECT ICON FROM IMAGES WHERE IMG_NAME=" + id);

        ResultSetMetaData rsmd = rs.getMetaData();

        int columnCount = rsmd.getColumnCount();

        for (int i = 1; i < columnCount + 1; i++) {

            blobList.add(rs.getBlob(i));

        }


    } catch (ClassNotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (SQLException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }


}

您可以对图像进行base64编码,并在数据URI中使用结果。Google是您的朋友。

您在一小时前问了同样的问题,但该问题已经关闭。不要一次又一次地问同一个问题。阅读已回答相同问题的答案。@JBNizet我已经看过了答案,但它没有回答我的问题。我问你是否可以使用标签来获取斑点并显示它们。请重新打开这个。答案解释了它。标记没有blob属性。它有一个src属性,该属性必须包含URL。浏览器对此URL发出附加请求以下载图像。唯一的替代方法是在src标记中使用数据URI,它包含base64编码的图像,正如您对这个问题的回答所告诉您的那样。谷歌搜索到