Все, что вам действительно нужно, это правильный заголовок ответа.Вот так.
reponse.setHeader("Content-disposition",
"attachment; filename=" +
"Example.png");
А потом я попытался бы сделать
request.getRequestDispatcher("/images/background.png").forward(request,response);
Но на самом деле я не проверял это, поэтому вам, возможно, придется прочитать файл и скопировать bytes
вместо.(