Is it possible to find out deployment path from JSF application?
One more question (if the answer for the former question is true): is it legitimate to store some uploaded files there?
Is it possible to find out deployment path from JSF application?
One more question (if the answer for the former question is true): is it legitimate to store some uploaded files there?
Is it possible to find out deployment path from JSF application?
Not directly, you'd need to grab the ServletContext
from the ExternalContext
as follows:
ServletContext servletContext = (ServletContext) externalContext.getContext();
It in turn offers the well-known getRealPath()
method.
String webContentRoot = servletContext.getRealPath("/");
If you're already on JSF 2.0, you could use ExternalContext#getRealPath()
instead.
One more question (if the answer for the former question is true): is it legitimate to store some uploaded files there?
You can do so. You only need to take into account that they all get lost whenever you redeploy the application. If you'd like to have a bit more permanent storage, consider storing it in a fixed path outside the webapplication, e.g. /var/webapp/upload
or so. An alternative is storing them in a database, this would increase the portability, but remember to store some metadata (name, content type, last modified timestemp, etc) along the file content as well so that you have something to index/search on.
Facescontext.getCurrentInstance().getexternalContext().getRealPath("/");
//any resource
don't remember exactly the method sequence but this will give you the resource's actual location on disk