JAVA servlets - 打开消息弹窗

4

我想使用HttpServletResponse对象来构建一个响应,告诉浏览器客户端打开一个带有一些消息的弹出窗口 - 我该怎么做?

4个回答

12
每个Servlet响应基本上都是一个HTTP文档或片段。因此,您可以返回对将在客户端上执行的JavaScript函数的调用。该函数可以作为Servlet响应传递,也可以预先包含在.js文件中。
例如:
//servlet code
PrintWriter out = response.getWriter();  
response.setContentType("text/html");  
out.println("<script type=\"text/javascript\">");  
out.println("alert('deadbeef');");  
out.println("</script>");

2
有一个问题 - 原始页面变成了空白 - 我希望内容保持不变,只弹出消息。 - Erik Sapir
点击“确定”后,它会跳转到一个空白页面,但我想留在当前页面。怎么办?我在上面的代码之后尝试了这个:resp.sendRedirect("./index.jsp"); 但是没有弹出警告。 - Shailendra Madda

1
在HttpServletResponse中添加一些JavaScript代码,以打开一个弹出窗口,类似于:
<script type="text/javascript">
function popupWindow() {
    window.open( "someLinkToBePoppedUp" )
}
</script>

1

基本上,你不能直接这样做。你必须发送一些代码(可能是HTML和JS),以指示客户端浏览器显示消息窗口,例如

String someMessage = "Error !";
PrintWriter out = response.getWriter();
out.print("<html><head>");
out.print("<script type=\"text/javascript\">alert(" + someMessage + ");</script>");
out.print("</head><body></body></html>");

0

一般来说,你是不能打开弹出窗口的。

由于弹出广告的普及性,大多数浏览器会拒绝打开不是响应用户在页面内操作的弹出窗口。

如果你只想显示信息,你可以将其包含在页面中,或输出一个脚本元素并在其中添加警报语句


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接