单击“下载”后,我的代码开始在新打开的选项卡窗口中从SAN位置写入内容,完成后,将PDF下载到本地系统。如果文件在30秒内没有写入/下载,我想关闭新的选项卡窗口。然后在父窗口JSP上显示文本消息。我的servlet代码如下:
try
{
GetPDAO getPDAO= new GetPDAO();
for(int i=0;i<5;i++)
{
content=getPDAO.getPFromE( strPN);
DateFormat df = new SimpleDateFormat("dd/MM/yy HH:mm:ss");
Date dateobj = new Date();
if(content==null)
{
Thread.sleep(5000);
}
else {
content=getPDAO.getPFromE( strPN);
break;
}
}
response.setContentType("application/pdf");
String strFileName=strPN+".pdf";
response.setHeader("Content-Disposition","attachment; filename=\"" + strFileName + "\"");
response.setHeader("Cache-Control","no-cache");
response.setHeader("Cache-Control","no-store");
response.setHeader("Pragma","no-cache");
response.setDateHeader("Expires", 0);
output =new BufferedOutputStream(response.getOutputStream());
output.write(content);
output.flush();
}
finally
{
output.close();
}
和我的JSP代码如下:
function onSubmit()
{
var url="<%=strCCPURL%>"+"/getpfromeservlet?PN="+document.getElementById("pn").value;
document.getElementById('alrt').innerHTML='<b>Please wait</b>';
setTimeout(function() {document.getElementById('alrt').innerHTML='';},8000);
window.open(url,"_blank");
document.getElementById('viewPD').href=url;
document.getElementById('viewPD').target='_blank';
}
答案 0 :(得分:2)
您可以将servlet中的sendRedirect用于JSP的副本,然后自动关闭JSP。 sendRedirect将关闭servlet,然后通过window.close方法关闭副本JSP。重点是回到主JSP。