Pregunta

En mi Servlet me gustaría acceder a la raíz del contexto para poder minimizar JavaScript.

Sería posible minimizar como parte del proceso de instalación, pero me gustaría hacerlo al iniciar el servlet para reducir el costo de implementación.

¿Alguien conoce algún método para obtener el directorio contextual para poder cargar y escribir archivos en el disco?

¿Fue útil?

Solución

Esto debería proporcionarle la ruta real que puede utilizar para extraer/editar archivos.

Enlace Javadoc

Estamos haciendo algo similar en un oyente de contexto.

public class MyServlet extends HttpServlet {

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

    ...
}

Otros consejos

En mi Servlet me gustaría acceder a la raíz del contexto para poder minimizar JavaScript

También puede acceder a los archivos en WebContent haciendo clic en ServletContext#getResource().Entonces, si su archivo JS se encuentra, por ejemplo, en WebContent/js/file.js entonces puedes usar lo siguiente en tu Servlet conseguir un File manejarlo:

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

o para conseguir un InputStream:

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

Dicho esto, ¿con qué frecuencia es necesario minimizar los archivos JS?Nunca he visto la necesidad de una minimización basada en solicitudes, solo agregaría muchos gastos generales innecesariamente.Probablemente quieras hacerlo sólo una vez durante el inicio de la aplicación.Si es así, entonces usando un Servlet porque esto es una mala idea.Mejor uso ServletContextListener y haz lo tuyo contextInitialized().

Estaba buscando en Google el resultado y no llegué a ninguna parte.En páginas JSP que necesitan usar Java Script para acceder al archivo actual ruta contextual en realidad es bastante fácil.

Simplemente escriba las siguientes líneas en su cabeza html dentro de una script bloquear.

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

Quieres decir:

public class MyServlet extends HttpServlet {

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

    ...
}

¿O algo más complejo?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top