jedną aplikację można opublikowane w różnych ścieżkach context tak ścieżka kontekstu (liczbę pojedynczą), ma znaczenie tylko w kontekście konkretnego żądania. Serwlet 2.5 dodał getContextPath()
do ServletContext
, określony w celu zwrócenia "podstawowej" ścieżki kontekstowej dla tej aplikacji internetowej, ale nie ma niezależnego od kontenera sposobu uzyskania dostępu do tych informacji we wcześniejszych wersjach specyfikacji.
Możliwe, że istnieją sztuczki, które działają w przypadku niektórych kontenerów, na przykład na serwerze Tomcat metoda ServletContext.getResource()
zwraca adresy URL ze schematem niestandardowym w postaci jndi://hostname/context/...
.W ten sposób może być w stanie używać
ctx.getResource("/").getPath()
uzyskać ścieżkę kontekstowe na Tomcat (lub ewentualnie getResource("/WEB-INF/web.xml")
i odciąć ogon, jak getResource()
jest określona, aby powrócić null
jeśli zapytać go do pliku, który nie istnieje) . Będziesz musiał eksperymentować z różnymi pojemnikami, aby znaleźć podobne sztuczki, które na nich działają.
[ServletContext.getServletContextName()] (http://docs.oracle.com/javaee/1.4/api/javax/servlet/ServletContext.html#getServletContextName()) -. ServletConfig.getServletContext() getServletContextName() –
jest to null w moim przypadku:/ – Lama