I have the same doubt. There is a funcionality on my system that is Download of reports.
The thing is that the download files are quite big (about 50 MB) and are created on the fly. Because it can take a while to download the file, I created some methods to show the status of the download. So, to do that, I created a new thread on my servlet, which main and only purpose is to prepare the report file to be downloaded and zip it on the end.
The html client form is refresh from 5-to-5 seconds, so that they can see the progress of the download.