Если вы правильно поняли, вы можете загрузить файл из HTTP-сервлета через response.sendRedirect() для файлов, доступных в открытом доступе.
Иначе вы должны использовать выходной поток ответа, чтобы связать информацию о файле, так что вам будет предложено скачать файл:
OutputStream out = response.getOutputStream();
FileInputStream in = new FileInputStream(fileToDownload);
byte[] buffer = new byte[4096];
int length;
while ((length = in.read(buffer)) > 0){
out.write(buffer, 0, length);
}
in.close();
out.flush();
Я догадывался, вы можете обрабатывать исключения, конечно.