Сохранение ресурса (изображения и т. Д.) Относительно корня приложения и его использование в Servlet / Jsp - PullRequest
1 голос
/ 14 июня 2011

У меня есть этот вариант использования, для которого я генерирую изображение в методе сервлета getPost.Я сохранял изображение в локальной файловой системе по адресу /tmp/xyz.jpg, а затем делал что-то вроде

response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<html>");
out.println("<title>Example</title>");
out.println("<body><h2>Graph is :</h2>");
out.println("<img src='/tmp/TimeSeriesChart.jpg'></body>");
out.println("</html>");  

Естественно, изображение не отображалось, когда я нажимал на URL (чтобы вызвать сервлет).

Причина, по-моему, заключается в том, что img src вычисляет корень приложения, а не корень файловой системы.

Итак, для подведения итогов я хочу сохранить изображение в нужном месте относительно корня приложения, получить доступ к изображению и отобразить его.

Q1.Как найти корень приложения внутри сервлета.Так что я могу сохранить изображение правильно.

Q2.Насколько целесообразно установить содержимое в виде изображения, а затем прочитать его в байтах и ​​отобразить: http://www.exampledepot.com/egs/javax.servlet/GetImage.html

1 Ответ

2 голосов
/ 14 июня 2011

Ans1: ServletContext.getRealPath () предоставит вам корневое местоположение приложения.

Ans2: нет ничего плохого в том, чтобы иметь сервлет, но выполнение контейнера, которое также обрабатывало бы следующие случаи:

  1. If-Modified-Since, отправляет ответ SC_NOT_MODIFIED
  2. Кэширование данных изображения в контейнере для последующих запросов.
...