Ciao, grazie della risposta! La domanda è "perchè non funziona?"
Motificando il codice tenendo conto dei tuoi accorgimenti non cambia il risultato..

Come database uso postgresql e come dominio per l'immagine utilizzo bytea. Questi pezzi di codice li ho presi da una guida, però leggendo in internet alcuni hanno risolto usando il dominio blob invece di bytea.
Mi sembra strano, avendo preso la guida da un docente universitario, che dite?

Intanto ho modificato doGet in questo modo
codice:
public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		String nomeProdotto = (String) request.getParameter("nome-prodotto");
		String nomeFornitore = (String) request.getParameter("nome-fornitore");
		if (nomeProdotto != null && nomeFornitore != null) {
			// ottengo lo stream di output verso la JSP
			PrintWriter out = response.getWriter();
			int i;
			Connection con;
			try {
				con = DS.getConnection();

				//SaveTakeImagesDatabase dbms = new SaveTakeImagesDatabase(con);

				String getpic = "SELECT immagine " + "FROM PPJ.Prodotto "
						+ "WHERE nome=? AND nomeFornitore=?";
				PreparedStatement pstmt = null;
				ResultSet rs = null;
				InputStream is = null;
				pstmt = con.prepareStatement(getpic);
				pstmt.clearParameters();
				pstmt.setString(1, nomeProdotto);
				pstmt.setString(2, nomeFornitore);
				rs = pstmt.executeQuery();
				rs.next();
				// l ’immagine di tipo bytea nel DB viene ottenuta come
				// un binary stream in particolare un InputStream
				is = rs.getBinaryStream(1);

				BufferedInputStream bis = new BufferedInputStream(is);
				// imposto il tipo della risposta alla JSP
				response.setContentType("image/jpeg");
				// imposto la dimensione in byte della risposta alla JSP
				response.setContentLength(bis.available());
				// byte per byte copio l ’ immagine letta dal DB sullo stream
				// verso la JSP
				while ((i = bis.read()) != -1)
					out.write(i);

				bis.close();
				out.flush();
				out.close();
				con.close();

			} catch (SQLException e) {
				// TODO in caso d'errore dove reindirizzo?
			}
		}

	}