【发布时间】:2013-09-01 22:07:15
【问题描述】:
我正在尝试使用 PrintWriter.out.write() 编写单个 Array 对象作为对 JavaScript (AJAX) 函数的响应,
这可能吗?还是我需要在发送之前以相同的方式转换数组?
尽量避免创建逗号分隔的字符串,然后在 JS 中解析
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.write(listDir());
}
private File[] listDir(){
File folder = new File("/home/rob/");
File[] listOfFiles = folder.listFiles();
//System.out.println("Number of files found: " + listOfFiles.length);
return listOfFiles;
}
然后想遍历调用 JavaScript AJAX 函数中的文件:
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
for (var i = 0; i < xmlhttp.responseText.length; i++) {
alert(xmlhttp.responseText[i]);
}
}
【问题讨论】:
-
由于您不想以文本格式从 Servlet 做出响应,因此您必须将结果转换为 JSON 格式,您可以在此答案中查看一个很好的示例stackoverflow.com/a/4113258/2727401跨度>
标签: java arrays servlets printwriter