我想知道在从一个页面重定向到另一个页面之前如何实现警报。
我的代码:( sciptlet)
<%
if(condition)
{
// alert here. before redirecting other page.
// now redirect here as fallow.
response.sendRedirect("sem-duration_old.jsp");
}
%>
我试过这不起作用:
<%
if(condition)
{
%>
<script>
alert(" we are going to some other page" );
</script>
<%
response.sendRedirect("semduration_old.jsp");
}
%>
答案 0 :(得分:4)
记住客户端和服务器端之间的分离。重定向信号(HTTP 302响应)由您的jsp发送,然后由浏览器接收。因此,无论您将哪些内容写入响应缓冲区(html标记,脚本标记和警报),您的浏览器都会立即请求重定向中指定的位置。所以你的jsp响应将类似于以下内容:
HTTP/1.1 302 Moved Temporarily
Server: Apache-Coyote/1.1
X-Powered-By: Servlet 2.5; JBoss-5.0/JBossWeb-2.1
Location: http://localhost/semduration_old.jsp
Content-Type: text/html;charset=ISO-8859-1
Content-Length: 0
实现目标的一种方法是允许客户端使用javascript“重定向”自己:
<%
if(condition)
{
%>
<script>
alert(" we are going to some other page" );
window.location = 'semduration_old.jsp';
</script>
<%
}
%>
答案 1 :(得分:2)
您还可以创建另一个消息和重定向的jsp页面。
<%
String msg = request.getParameter("msg");//means you have to send the message as a parameter
String location = request.getParameter("location");
%>
<script>
alert("<%= msg %>");//alert the message
//you can also display the message using a mark up on the page and use setTimeOut()
window.location = "<%= location %>";//then redirect
</script>
答案 2 :(得分:1)
可能会对你有帮助。
<%
if(condition)
{ %>
<script type="text/javascript">
alert('redirecting');
</script>
// alert here. before redirecting other page.
// now redirect here as fallow.
<% response.sendRedirect("sem-duration_old.jsp?current_session");
}
%>
我没试过。但这可能不是最佳解决方案。你试过unload功能吗?