Frage

In meinem Servlet möchte ich auf das Stammverzeichnis des Kontexts zugreifen, damit ich eine JavaScript-Minimierung durchführen kann.

Es wäre möglich, die Minimierung als Teil des Installationsprozesses durchzuführen, ich würde dies jedoch gerne beim Start des Servlets tun, um die Implementierungskosten zu senken.

Kennt jemand eine Methode zum Abrufen des Kontextverzeichnisses, damit ich Dateien laden und auf die Festplatte schreiben kann?

War es hilfreich?

Lösung

Das sollten Sie den tatsächlichen Pfad geben, die Sie extrahieren / Bearbeiten von Dateien verwenden können.

Javadoc Link-

Wir sind etwas Ähnliches in einem Kontext Zuhörer zu tun.

public class MyServlet extends HttpServlet {

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

    ...
}

Andere Tipps

  

In meinem Servlet würde Ich mag die Wurzel des Kontextes zuzugreifen, so dass ich einige JavaScript tun kann minifying

Sie können auch Zugriff auf die Dateien im WebContent von ServletContext#getResource() . Also, wenn Ihre JS-Datei zum Beispiel auf WebContent/js/file.js befindet, dann können Sie die folgende in Ihrem Servlet verwenden, um einen File Griff um es zu bekommen:

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

oder eine InputStream zu bekommen:

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

Wie gesagt, wie oft haben Sie JS-Dateien minify benötigen? Ich habe nie das Bedürfnis nach Wunsch basierte Verkleinerungs gesehen, wäre es nur unnötig viel Aufwand hinzufügen. Wahrscheinlich wollen Sie es während der Anwendung der Start-ups nur einmal tun. Wenn ja, dann für diese ein Servlet verwendet, ist eine schlechte Idee. Besser verwenden ServletContextListener und mach dein Ding auf contextInitialized().

Ich war googeln das Ergebnis und immer nicht, wo. In JSP-Seiten, die die aktuellen benötigen Java Script zu verwenden, um Zugriff auf contextPath es ist eigentlich ganz einfach.

Legen Sie einfach die folgenden Zeilen in Ihre html head in einem script Block.

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

Meinen Sie:

public class MyServlet extends HttpServlet {

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

    ...
}

Oder etwas komplexer?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top