There's two ways to attack this one I think...
First, set up a servlet-mapping for /download/* to point to your servlet.
When you call
http://yourDomain/download/ebook.pdf, everything after the uri part 'download' will be returned by a call to request.getPathInfo() (i.e. /ebook.pdf). Strip off the preceding slash and you have your file name. The advantage here is you can include some directory structure to keep the pdf directory clean and organized.
i.e.
http://yourDomain/download/manuals/java/user_guide.pdf -> %PDF_ROOT%/manuals/java/user_guide.pdf
The disadvantage would be that you are exposing the directory structure which may be a security hazard for you.
The second way would be to map *.pdf in the servlet-mapping to your servlet. Then you can call
http://yourDomain/downloads/ebook.pdf and request.getServletPath() will return /downloads/ebook.pdf.