Como sé, ¿devuelve la ruta de la aplicación? Pero qué exactamente su uso.Servlet: ¿Cuál es exactamente el uso de context.getRealPath ("");
Respuesta
En muchos entornos, el usuario de la aplicación no puede leer ningún archivo fuera del directorio de implementación. Esto se hace principalmente con fines de seguridad; por ejemplo, si alguien piratea su aplicación, no podrá leer un archivo de contraseñas.
Y en entornos administrados profesionalmente, los desarrolladores a menudo no tienen voz en qué directorio se colocará la aplicación.
Así que si necesita leer un archivo como propiedades, imágenes, certificados, etc. puede colocarlo en el directorio de la aplicación (o archivo .war) y usar getRealPath ("") para obtener la ruta que necesita cargar .
Como alternativa puede colocar los archivos externos en la ruta de clases, pero a veces hay problemas con esto. Para archivos grandes, la mayoría de los servidores de aplicaciones intentarán cargar todo el archivo en la memoria y almacenarlo en caché si está en el classpath.
Por lo que recuerdo, lo he usado para guardar imágenes u otros archivos de datos, ya que le permite ver donde se implementa su aplicación en este momento. Por ejemplo, Eclipse y Tomcat crearán una carpeta temporal que está enterrada profundamente en algún lugar dentro de su perfil de Eclipse y desplegarán la aplicación allí.
Esta es una ruta real en el sistema de archivos.
De javadoc:
El camino real devuelta será de una manera apropiada para el sistema informático y operativo en el que el contenedor de servlets se está ejecutando, incluyendo los separadores de ubicación adecuados. Este método devuelve un valor nulo si el contenedor de servlets no puede traducir la ruta virtual a una ruta real por ningún motivo (como cuando el contenido está disponible desde un archivo .war).
Creo que está muy claro. ¿Porqué necesitamos esto? A veces las aplicaciones web realizan alguna manipulación en el sistema de archivos. Por ejemplo, lea cosas de archivos, escriba archivos, etc. Esta API le permite acceder al lugar donde se almacenan realmente sus JSP y otras cosas.
getRealPath() proporciona la ruta absoluta (en el sistema de archivos) que conduce a un archivo especificado en los parámetros de la llamada. Devuelve la ruta en el formato específico del sistema operativo. getContextPath(), por otro lado, devuelve el URI o la ruta relativa al recurso.
- 1. ¿Cuál es el uso de filtro y cadena en servlet?
- 2. ¿Cuál es exactamente la solicitud de Ajax? ¿Es diferente de la solicitud de servlet?
- 3. ¿Cuál es exactamente el Host Runtime?
- 4. ¿Cuál es el propósito de AsyncContext.start (...) en Servlet 3.0?
- 5. ¿Qué es exactamente streambuf? ¿Como lo uso?
- 6. ¿Cuál es exactamente el 'Contexto de ejecución' en JavaScript?
- 7. ¿Cuál es exactamente el significado de "===" en javascript?
- 8. ¿Cuál es exactamente el sentido de Expression Trees?
- 9. ¿Servlet es el singleton?
- 10. ¿cuál es el uso básico de alignment_storage?
- 11. ¿Cuál es el uso de singletonList?
- 12. ¿Cuál es el uso de window.external?
- 13. ¿Cuál es el uso previsto de IllegalStateException?
- 14. ¿Cuál es el uso correcto de DataContext.Refresh()?
- 15. ¿Cuál es el uso de @SuppressWarnings
- 16. ¿Cuál es el uso de autómatas finitos?
- 17. ¿Cuál es el uso correcto de EnsureChildControls()?
- 18. ¿Cuál es el uso de la sintaxis = =?
- 19. ¿Cuál es el uso de Log4j API?
- 20. ¿Cuál es el uso principal de MarshalByRefObject?
- 21. ¿Cuál es el uso de LOCAL_MODULE_TAGS?
- 22. ¿Cuál es el uso de AtomicReferenceArray?
- 23. ¿Cuál es el uso de typedef?
- 24. ¿Cuál es el uso de "indulgente"?
- 25. ¿Cuál es el uso de - [NSUserDefaults registerDefaults:]?
- 26. ¿cuál es el uso de string.Clone()?
- 27. ¿Cuál es el uso de Deployment.Current.Dispatcher.BeginInvoke (() => {...})?
- 28. ¿Cuál es el uso de Indexers?
- 29. ¿Cuál es la diferencia entre GenericServlet, HttpServlet y un Servlet?
- 30. ¿Cuál es el uso del uso de init() en JavaScript?