una servletcontext ruta obtener imagen ejemplo archivo java servlets

servletcontext - obtener la ruta de una imagen en java



En servlet(aplicación web) ¿cómo sé la ruta relativa? (2)

Si está ubicado en el classpath, o puede agregar la carpeta al classpath, ¿qué tal: ClassLoader classLoader = Thread.currentThread (). GetContextClassLoader (); InputStream input = classLoader.getResourceAsStream (fileName);

Tengo un archivo jsp en la raíz del archivo .war. y luego tengo una carpeta llamada STUFF.

¿Cómo obtengo acceso al archivo read.txt dentro de STUFF?

/Name_of_war/STUFF/read.txt es la ruta correcta?


La ruta relativa a la aplicación web es /STUFF/read.txt .

Puede usar ServletContext#getRealPath() para convertir una ruta web relativa a una ruta de sistema de archivos de disco local absoluta. De esta forma, puedes utilizarlo más en las cosas habituales de java.io que en realidad no saben nada sobre el contexto web en el que se está ejecutando. Por ejemplo,

String relativeWebPath = "/STUFF/read.txt"; String absoluteDiskPath = getServletContext().getRealPath(relativeWebPath); File file = new File(absoluteDiskPath); // Do your thing with File.

Sin embargo, esto no funciona si el servidor está configurado para expandir WAR en la memoria en lugar de en el disco. El uso de getRealPath() siempre tiene esta advertencia y no se recomienda en aplicaciones del mundo real. Si todo lo que necesita en última instancia es obtener un InputStream de ese archivo, para el cual probablemente haya utilizado FileInputStream , será mejor que use ServletContext#getResourceAsStream() para obtenerlo directamente como InputStream :

String relativeWebPath = "/STUFF/read.txt"; InputStream input = getServletContext().getResourceAsStream(relativeWebPath); // Do your thing with InputStream.