Eine Webapplikation kann an mehreren verschiedenen Kontextpfaden veröffentlicht, so der Kontextpfad (Singular) in Zusammenhang mit einer bestimmten Anforderung nur dann sinnvoll ist. Servlet 2.5 fügte getContextPath()
zu ServletContext
hinzu, um den "primären" Kontextpfad für diese Webanwendung zurückzugeben, aber es gibt keine Container-unabhängige Möglichkeit, auf diese Information in früheren Spezifikationsversionen zuzugreifen.
Es kann Tricks geben, die für bestimmte Container funktionieren. Beispielsweise gibt die Methode ServletContext.getResource()
bei Tomcat URLs mit einem benutzerdefinierten Schema im Format jndi://hostname/context/...
zurück.So können Sie in der Lage sein
ctx.getResource("/").getPath()
zu verwenden, um den Kontextpfad auf Tomcat zu bekommen (oder möglicherweise getResource("/WEB-INF/web.xml")
und den Schwanz abschneiden, als getResource()
angegeben null
zurück, wenn Sie es für eine Datei fragen, die nicht existiert) . Sie müssen mit verschiedenen Containern experimentieren, um ähnliche Tricks zu finden, die an diesen arbeiten.
[ServletContext.getServletContextName()] (http://docs.oracle.com/javaee/1.4/api/javax/servlet/ServletContext.html#getServletContextName()) - ServletConfig.getServletContext(). GetServletContextName() –
das ist in meinem Fall null:/ – Lama