Recuperar Produtos com imagens(BLOB) de uma classe DAO na servlet e jogar para o JSP[RESOLVIDO]

Bom pessoal, eu sou iniciante em java, estou desenvolvendo meu TCC, e necessito cadastrar produtos e mostrar ele em uma página de produtos cadastrados basicamente.
Por meio de uma classe DAO e uma servlet além da classe modelo, eu insiro o produto com nome, descrição e imagem, no SGBD MYSQL eu defini o tipo da imagem como BLOB e na DAO e no modelo da classe Produto eu coloquei do tipo InputStream, porém não consigo recuperar uma lista de produtos com o nome, a descrição e a imagem, pesquisei semanas na internet, mas nenhum tutorial me serviu.
Segue o código:

Classe Produto

public class Produto {
    
    private long id;
    private String nome;
    private String descricao;
    private InputStream imagem;

    public Produto(long id, String nome, String descricao) {
        this.id = id;
        this.nome = nome;
        this.descricao = descricao;
    }

    public Produto() {}

    public long getId() {
        return id;
    }

    public void setId(long id) {
        this.id = id;
    }

    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

    public String getDescricao() {
        return descricao;
    }

    public void setDescricao(String descricao) {
        this.descricao = descricao;
    }

    public InputStream getImagem() {
        return imagem;
    }

    public void setImagem(InputStream imagem) {
        this.imagem = imagem;
    }
}

Classe ProdutoDAO

public class ProdutoDAO {
    
    private Connection connection = null;
    
    public ProdutoDAO() {
        this.connection = new ConnectionFactory().getConnection();
    }
    
    public void insert(Produto produto) {
        
        String sql = "INSERT INTO produto(nome, descricao, imagem) "
                + "VALUES(?, ?, ?)";
        try {
            PreparedStatement pstm = this.connection.prepareStatement(sql);
            pstm.setString(1, produto.getNome());
            pstm.setString(2, produto.getDescricao());
            if(produto.getImagem() != null) {
                pstm.setBlob(3, produto.getImagem());
            }
            pstm.execute();
            pstm.close();  
        }catch(SQLException e) {
            System.out.println("Erro no banco de dados: "+e);
            throw new RuntimeException(e);
        }   
    }
    
    public List<Produto> getList() {
        
        List<Produto> produtos = new ArrayList();
        
        try {
            PreparedStatement pstm = this.connection.prepareStatement(
                    "SELECT * FROM produto");
            ResultSet rs = pstm.executeQuery();
            while(rs.next()) {
                Produto produto = new Produto();
                
                produto.setId(rs.getLong("id"));
                produto.setNome(rs.getString("nome"));
                produto.setDescricao(rs.getString("descricao"));
                produto.setImagem(rs.getBlob("imagem").getBinaryStream());
                
                produtos.add(produto);
            }
            pstm.close();
            rs.close();
            return produtos;
        }catch(SQLException e) {
            System.out.println("Erro no banco de dados: "+e);
            throw new RuntimeException(e);
        }
    }
}

Como faço para processar a imagem do tipo InputStream e jogar na página JSP?

Oi @Gustavohks2,
primeiro você transforma o seu InputStream em um vetor de byte.

InputStream input = ... // sua variavel
ByteArrayOutputStream baos = new ByteArrayOutputStream(); 
int reads = input.read();
while(reads != -1)
{ 
	baos.write(reads); 
	reads = input.read(); 
}

byte[] vetor = baos.toByteArray();

ai no servlet:

response.setContentType("image/jpg");
response.getOutputStream().write( vetor );

Muito obrigado pela resposta, mas infelizmente não consegui, queria várias imagens!