add an independent servlet for downloading

To make the logic clearer, add an new servlet processing downloading