как прочитать текстовый файл с сервера и отобразить текст в index.jsp - PullRequest
1 голос
/ 02 февраля 2011

Я просыпаюсь на веб-сервисе. Теперь у меня есть папки сеансов для каждого пользователя, и у каждого пользователя есть свой лог-файл.Теперь я хочу прочитать файлы журнала из Java и передать его в index.jsp для показа.Как я уже использовал javax.servlet.http.HttpServletRequest req - req.setAttribute(REQUEST_IS_LOG, log); и req.getRequestDispatcher("index.jsp").forward(req, res); у меня не работают.Может ли кто-нибудь помочь мне найти другой путь?Как я могу взять текст из файла в отображении его в индекс?Есть ли способ сделать это с помощью AJAX?Заранее спасибо!

Ответы [ 3 ]

3 голосов
/ 02 февраля 2011

Если он находится в общедоступном веб-контенте, просто используйте <jsp:include>.

<code><pre>
    <jsp:include page="logs/user123.txt" />

В противном случае введите HttpServlet, который получает InputStream требуемого ресурса и записываетэто к OutputStream ответа.

<code><pre>
    <jsp:include page="logservlet/user123.txt" />

Или, если оно находится в другом общедоступном домене, используйте JSTL <c:import>.

<code><pre>
    <c:import url="http://other.com/logs/user123.txt" />

Что касается части Ajax, просто сделайте что-то вроде

document.getElementById("log").innerHTML = xhr.responseText;

См. Также мой ответ на этот вопрос для более подробных примеров.

1 голос
/ 02 февраля 2011

JSP:

<% BufferedReader reader = new BufferedReader(new FileReader("log.txt")); %>
<% String line; %>
<% while ((line = reader.readLine()) != null) { %>
   <%=line %>
<% } %>

Это будет работать, потому что jsp может делать все, что может делать Java. Тем не менее, для больших проектов вы должны изучить использование Model-View-Controller. Есть несколько платформ, которые могут помочь с этим, таких как Spring или Struts.

0 голосов
/ 02 февраля 2011

Наконец-то я сделал:

res.setContentType("text/plain");
            request.setAttribute(REQUEST_IS_LOG, logs);     
            request.getRequestDispatcher("index.jsp").forward(req, res);
            return;

Прежде чем писать как:

java.io.OutputStream result=res.getOutputStream();

, поэтому я не смог использовать метод, который я написал выше.Я просто изменяю на файл как:

java.io.OutputStream result = new java.io.FileOutputStream((destinationDir+System.getProperty("file.separator")+"result"+n+"."+targetFormat.toLowerCase()));

и это работает!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...