Here are some hints/suggestions:
1) Route all requests for static/* to your servlet
2) Place the relative file name in the URL and have the servlet extract it. Example:
http://localhost:8080/myapp/static/docs/instr.pdf yields the relative directory docs/instr.pdf
3) Use a context-param to set the external directory base location
4) The servlet will have to understand the various file types that it will serve and set the content type properly. For example, for the file in item 2 above you would use:
response.setContentType("application/pdf");
5) Have the servlet open the file and send it to the response buffer. You might have to mess with the max buffer size (I have only done this for smaller files).