I am writing a Java servlet, using Tomcat as the container, which creates and serves PDF files to the end-user. Currently the PDF files are created in-memory and written out as a response to a POST.
I would like to change this up somewhat so that the PDF files are written to disk (so they can be served up again later). I am having trouble locating a suitable "how-to" for doing this.
How can I configure my servlet to write to and read files from a directory server-side? From what I've read, I think I need to locate this directory somewhere outside where my "exploded webapp" lives in $CATALINA_BASE
for security reasons, and I need to use a Context
or somesuch.
You can just use the usual FileOutputStream
and FileInputStream
classes to respectively write to and read from the disk. Change your PDF generator to write to FileOutputStream
and change your file servlet to read from FileInputStream
.
And, indeed, you'd like to store those files outside the webapp, else it will all get lost whenever you redeploy the webapp. You don't need the ServletContext
, it's only useful to convert a relative web path to an absolute disk file system path. You don't need it when you're storing it outside the webapp, you namely already know the absolute disk file system path.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With