sirve servletcontext servlet que para example ejemplo contenedor java tomcat servlets

java - servletcontext - Acceso a la ruta de contexto de Tomcat desde Servlet



servletcontext java ejemplo (4)

En mi Servlet me gustaría acceder a la raíz del contexto para poder hacer algo de minificación de JavaScript

También puede acceder a los archivos en WebContent por ServletContext#getResource() . Por lo tanto, si su archivo JS se encuentra, por ejemplo, en WebContent/js/file.js , puede usar lo siguiente en su Servlet para obtener un manejador de File :

File file = new File(getServletContext().getResource("/js/file.js").getFile());

o para obtener un InputStream :

InputStream input = getServletContext().getResourceAsStream("/js/file.js");

Dicho esto, ¿con qué frecuencia necesita minificar los archivos JS? Nunca he visto la necesidad de la minificación basada en solicitudes, solo agregaría innecesariamente demasiados gastos generales. Probablemente desee hacerlo solo una vez durante el inicio de la aplicación. Si es así, usar un Servlet para esto es una mala idea. Mejor use ServletContextListener y haga lo suyo en contextInitialized() .

En mi Servlet me gustaría acceder a la raíz del contexto para poder hacer algo de minificación de JavaScript.

Sería posible hacer el minify como parte del proceso de instalación, pero me gustaría hacerlo en el inicio de Servlet para reducir el costo de implementación.

¿Alguien sabe de un método para obtener el directorio de contexto para que pueda cargar y escribir archivos en el disco?


Estaba buscando en Google el resultado y no llegar a ningún lado. En las páginas JSP que necesitan utilizar Java Script para acceder al contextPath actual, es bastante fácil.

Simplemente ponga las siguientes líneas en su cabeza html dentro de un bloque de script .

// set up a global java script variable to access the context path var contextPath = "${request.contextPath}"


Esto debería darle la ruta real que puede usar para extraer / editar archivos.

Enlace Javadoc

Estamos haciendo algo similar en un escucha de contexto.

public class MyServlet extends HttpServlet { public void init(final ServletConfig config) { final String context = config.getServletContext().getRealPath("/"); ... } ... }


Quieres decir:

public class MyServlet extends HttpServlet { public void init(final ServletConfig config) { final String context = config.getServletContext(); ... } ... }

¿O algo más complejo?