2014-10-09 7 views
3

Что я пытаюсь сделать, так это прочитать содержимое html-файла. При щелчке ссылки необходимо прочитать содержимое html-файла и этот контент будет использоваться где-то в моем коде.Относительный URL-адрес Абсолютного Пути

Что я пробовал:

Я попытался преобразовать относительный путь к абсолютному пути

String absoluteFilePath = servletContext.getRealPath("/html/en/TestPage.html"); 

и это отлично работает в WebLogic на моих окон Dev машину, но когда этот код развернут до webloic на Unix машина вышеуказанный код возвращается null. Я выкопать Google, и я нашел

«servletContext.getRealPath возвращает нулевое значение, если контейнер сервлета не может перевести виртуальный путь к реальному пути по какой-либо причине (например, когда контент делается доступным из а. военный архив).

Можете ли вы предложить лучший способ преобразования относительного пути в абсолютный (с использованием контекстного пути). Код должен работать как на окнах, так и на платформе Unix или каким-либо другим способом, чтобы читать html-файл, например, вместо чтения из абсолютного пути, если я могу читать файл с относительного пути.

+0

какой сервер вы используете? можете ли вы рассказать нам полное квалифицированное имя класса servletcontext? –

+2

похоже дубликат http://stackoverflow.com/a/12160863/2078908 – ursa

+1

Возможный дубликат [что означает «/» в методе «servletcontext.getRealPath»] (http://stackoverflow.com/questions/12160639/ what-does-mean-in-the-method-servletcontext-getrealpath) –

ответ

1

Вы можете использовать только getRealPath(...) если войну взорвалась, но вы всегда можете прочитать файл под сервлетом корневого контекста с getResource(...) или getResourceAsStream(...). В вашем примере, это будет:

InputStream is = servletContext.getResourceAsStream("/html/en/TestPage.html"); 

И тогда вы можете смело читать ...

Смежные вопросы