[MVC] Korzystanie z pliku umieszczonego na serwerze

0

Buduję aplikację opartą o JavaBeans/POJOs - Servlety - JSP.
Chciałem napisać klasę korzystającą z pliku "plik.xml" umieszczonego w katalogu /WEB-INF/. Używałem przy tym: File plik = new File("/WEB-INF/plik.xml"), jednak w ten sposób plik wyszukiwany jest w "C:/WEB-INF/plik.xml" (dość oczywiste).
Czy jest jakaś możliwość dotarcia do pliku przez podanie ścieżki "/WEB-INF/plik.xml"?

0

skonfiguruj sobie to we właściwościach servletu.

0

Gdybyś mógł mi wytłumaczyć w jaki sposób to zrobić, byłbym bardzo wdzięczny.

0

Poradziłem sobie używając w servlecie:
InputStream is = getServletContext().getResourceAsStream("/WEB-INF/plik.xml");

Mimo wszystko Koziołek, bardzo jestem ciekawy Twojego sposobu, więc jakbyś mógł mi go przybliżyć byłbym wdzięczny.

0

Może chodziło o to, że servlet może mieć własny parametr inicjalizacyjny.

http://www.exampledepot.com/egs/javax.servlet/GetInit.html

0

Jeśli tak, to nie o to mi chodziło. Taki parametr to String, który nic mi nie daje, bo potrzebuję File'a, bądź InputStream'a.
W parametrze inicjalizacyjnym mogę co najwyżej określić ścieżkę do pliku (co wydaje się być dobrym pomysłem, bo uniknę wpisywania ścieżki w kodzie serwletu).

0

Taki parametr to String, który nic mi nie daje, bo potrzebuję File'a,

Ale jak chcesz mieć obiekt file lub inpustream bez url?
Masz ten adres w web.xml i git, w kodzie servletu zawsze musisz stworzyć obiekt File czy inny.
Ewentualnie, mógłbyś sobie pobierać ten obiekt z jakieś zwykłej klasy w init(), ale po co?

</quote>
0

GhostDog, jakbyś przeczytał drugą linijkę tego posta, zauważyłbyś że napisałeś to samo co ja, tylko w inny sposób. Problem był w tym, że przy zastosowaniu File'a plik był lokalizowany nie tam gdzie chciałem (pierwszy post).
Ostatecznie problem rozwiązałem tak jak wcześniej pisałem, ale właśnie z użyciem parametru:
web.xml:
<init-param>
<param-name>plik</param-name>
<param-value>/WEB-INF/plik.xml</param-value>
</init-param>
servlet:
InputStream is = getServletContext().getResourceAsStream(getServletConfig().getInitParameter("plik"));

1 użytkowników online, w tym zalogowanych: 0, gości: 1