servidor saber localizado directorio desplegar como archivo java tomcat directory-listing

java - saber - desplegar directorio o archivo war localizado en servidor



¿Cómo puedo listar todos los archivos en la carpeta en tomcat? (7)

Aquí hay algunos documentos que explican cómo hacer esto.

http://tomcat.apache.org/tomcat-7.0-doc/default-servlet.html

La idea básica es cambiar el valor del parámetro de listings a true en el web.xml principal de tomcat.

<servlet> <servlet-name>default</servlet-name> <servlet-class> org.apache.catalina.servlets.DefaultServlet </servlet-class> <init-param> <param-name>debug</param-name> <param-value>0</param-value> </init-param> <init-param> <param-name>listings</param-name> <param-value>false</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet>

Pero lo anterior expondrá todos los directorios. Para tener un buen control, siga los pasos explicados aquí:

http://tomcat.apache.org/tomcat-7.0-doc/default-servlet.html#dir

Tengo una carpeta con muchos documentos de Excel en el tomcat y quiero que esos archivos estén disponibles cuando llegue a la URL de esa carpeta en el navegador (por ejemplo, http; // localhost: 8080 / myfolder)

en el momento en que intento acceder a una carpeta, aparece un error 404. por si intento acceder a un archivo que está en esa carpeta, funciona.


Aquí hay un servlet simple que podría ser el comienzo de un enfoque completamente personalizado.


Si está utilizando Tomcat 6 (que implementa la especificación Servlet 2.5) o una versión más nueva, no tiene que cambiar el archivo web.xml en el directorio CATALINA_HOME / conf / para mostrar las listas de directorios. En su lugar, debe cambiar el archivo web.xml propio de la aplicación web en WEB-INF.

Como mencionó Adarshr, esto es lo que necesita agregar al web.xml

<servlet> <servlet—name>default</servlet—name> <servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class> <init-param> <param-name>debug</param-name> <param-value>0</param-value> </init-param> <init-param> <param-name>listings</param-name> <param-value>true</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet>

También necesita agregar lo siguiente

<servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping>


Si no funciona el cambio del valor del parámetro de listados, intente editar la lista de archivos de bienvenida

los valores predeterminados fueron los siguientes:

<welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.htm</welcome-file> <welcome-file>index.jsp</welcome-file> </welcome-file-list>

edítalo de la siguiente manera:

<welcome-file-list> <welcome-file></welcome-file> <welcome-file></welcome-file> <welcome-file></welcome-file> </welcome-file-list>

al eliminarlos debería funcionar perfectamente


Si solo está tratando de implementar un explorador de archivos basado en la web para archivos fuera de su servlet, podría usar la aplicación web personalizada que se menciona en esta respuesta .


También puede habilitarlo comenzando desde un patrón de url dado. Solo agregue el servlet y la asignación de servlets a su aplicación web.xml

<servlet> <!-- List files in /ws-definitions --> <servlet-name>ListWsDefinitions</servlet-name> <servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class> <init-param> <param-name>debug</param-name> <param-value>0</param-value> </init-param> <init-param> <param-name>listings</param-name> <param-value>true</param-value> </init-param> <load-on-startup>100</load-on-startup> </servlet> <servlet-mapping> <servlet-name>ListWsDefinitions</servlet-name> <url-pattern>/ws-definitions/*</url-pattern> </servlet-mapping>

En este ejemplo, los directorios debajo de "/ ws-definitions /" serán escuchados.


El DefaultServlet de Tomcat está configurado de manera predeterminada para no mostrar las listas de directorios. /conf/web.xml archivo /conf/web.xml de Tomcat (busque en la carpeta de instalación de Tomcat), busque la entrada <servlet> del DefaultServlet y luego cambie el parámetro de inicialización de las listings desde

<init-param> <param-name>listings</param-name> <param-value>false</param-value> </init-param>

a

<init-param> <param-name>listings</param-name> <param-value>true</param-value> </init-param>

Tenga en cuenta que esto afecta a todas las carpetas de su aplicación web. Si desea habilitar esto solo para una carpeta individual, debe escribir usted mismo el código del Servlet , que hace el trabajo con la ayuda de la API java.io.File en el lado del servlet para recopilar los archivos y algunos grupos de HTML / CSS. en el lado JSP para presentarlo de una manera ordenada.