我正在尝试将文件上传到服务器。我在jsp中嵌入了一个iframe。这个iframe保存对servlet的操作,servlet将文件保存在服务器上。在处理文件时,它通过response.getWriter()
返回一个HTML输出(如下所示)。
private String getRespHTML(boolean isUploadSuccess, String theReturnMsg){
StringBuilder theHTMLBuf = new StringBuilder();
theHTMLBuf.append("<html><head>");
theHTMLBuf.append("<SCRIPT LANGUAGE="JavaScript">");
if(isUploadSuccess){
theHTMLBuf.append("parent.uploadStatus(true, '"+ theReturnMsg + "');");
}
else{
theHTMLBuf.append("parent.uploadStatus(false, 'Upload failed: " + theReturnMsg + "');");
}
theHTMLBuf.append("</SCRIPT>");
theHTMLBuf.append("</head><body></body></html>");
return theHTMLBuf.toString();
}
现在,这个parent.uploadStatus
(驻留在JSP中包含的脚本文件中的JS函数)在我的本地服务器中可以完美地工作。但当我主持这个时,上传会很好,但这个脚本不会被调用。这里所有的页面都来自同一个域,而且它甚至不适用于window.parent.uploadStatus
。
感谢你的帮助!
好吧,我的错。我为servlet响应添加了下面一行,它就工作了。
response.setContentType("text/html");