[英]how to read a text file from server and display the text in index.jsp
我正在上网服务。现在我有每个用户的会话文件夹,每个用户都有它的日志文件。 现在我想从java读取日志文件并将其传递给index.jsp for show。 因为我已经使用过javax.servlet.http.HttpServletRequest req
- req.setAttribute(REQUEST_IS_LOG, log);
和req.getRequestDispatcher("index.jsp").forward(req, res);
不适合我。 有人可以帮助我找到另一种方式吗? 如何将文件中的文本显示在索引中? 他们是否有办法用ajax做到这一点? 先感谢您!
如果它在公共webcontent中,只需使用<jsp:include>
。
<pre>
<jsp:include page="logs/user123.txt" />
</pre>
否则在它们之间引入一个HttpServlet
,它获取所需资源的InputStream
并将其写入响应的OutputStream
。
<pre>
<jsp:include page="logservlet/user123.txt" />
</pre>
或者,如果它位于不同的公共域,请使用JSTL <c:import>
。
<pre>
<c:import url="http://other.com/logs/user123.txt" />
</pre>
至于Ajax部分,只需要做类似的事情
document.getElementById("log").innerHTML = xhr.responseText;
有关更多示例,请参阅我对此问题的回答。
JSP:
<% BufferedReader reader = new BufferedReader(new FileReader("log.txt")); %>
<% String line; %>
<% while ((line = reader.readLine()) != null) { %>
<%=line %>
<% } %>
这将起作用,因为jsp可以做任何Java可以做的事情。 但是,对于较大的项目,您应该考虑使用模型 - 视图 - 控制器实现。 有几个框架可以帮助解决这个问题,比如Spring或Struts。
最后我确实喜欢:
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()));
它的工作原理!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.