【问题标题】:how to read a text file from server and display the text in index.jsp如何从服务器读取文本文件并在 index.jsp 中显示文本
【发布时间】:2011-02-01 21:12:49
【问题描述】:

我正在使用网络服务。现在我有每个用户的会话文件夹,每个用户都有它的日志文件。现在我想从 java 中读取日志文件并将其传递给 index.jsp 进行显示。因为我已经使用了 javax.servlet.http.HttpServletRequest req - req.setAttribute(REQUEST_IS_LOG, log);req.getRequestDispatcher("index.jsp").forward(req, res); 不适合我。有人可以帮我找到另一种方法吗?如何将文件中的文本显示在索引中? 他们有没有办法用ajax做到这一点? 提前谢谢!

【问题讨论】:

    标签: java ajax servlets


    【解决方案1】:

    如果它在公共网络内容中,只需使用<jsp:include>

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

    否则,在两者之间带一个HttpServlet,获取所需资源的InputStream,并将其写入响应的OutputStream

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

    或者,如果它位于不同的公共域,请使用 JSTL &lt;c:import&gt;

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

    至于 Ajax 部分,只需执行类似

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

    有关更多示例,另请参阅我在 this question 上的回答。

    【讨论】:

    • 谢谢,例子对我有很大帮助
    【解决方案2】:

    JSP:

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

    这会起作用,因为 jsp 可以做 Java 可以做的任何事情。但是,对于较大的项目,您应该考虑使用 Model-View-Controller 实现。有几个框架可以帮助解决这个问题,例如 Spring 或 Struts。

    【讨论】:

    • ...或者如果日志的内容是页面中唯一显示的内容,您可以在您的 servlet 中执行上述代码,而无需转发到 JSP。
    【解决方案3】:

    我终于喜欢了:

    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()));
    

    它有效!

    【讨论】:

      猜你喜欢
      • 2014-01-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多