if(...){
out.println("<Script language='javascript'>alert('注册成功')</Script>");//语句1
response.sendRedirect("registerSuccess.jsp");//语句2
}else{
out.println("注册失败<br/><br/>");
out.println("三秒后将返回...");
response.setHeader("refresh", "3;url=readerregister.jsp");
}
一个jsp文件提交到servlet中处理表单若注册成功,我想让它提示注册成功(js实现)。。但是现在为什么语句1没有执行到???如果我吧语句2去掉后。。则语句1就能执行到??
out.println("<Script language='javascript'>alert('注册成功')</Script>");//语句1
response.sendRedirect("registerSuccess.jsp");//语句2
}else{
out.println("注册失败<br/><br/>");
out.println("三秒后将返回...");
response.setHeader("refresh", "3;url=readerregister.jsp");
}
一个jsp文件提交到servlet中处理表单若注册成功,我想让它提示注册成功(js实现)。。但是现在为什么语句1没有执行到???如果我吧语句2去掉后。。则语句1就能执行到??
你输出到那个页面去了?确认输出到了某个页面去?
如果语句2在的话,那这个就不等到客户端执行那步就已经跳转了,所以语句1中的javascript实际没有被执行。
就是现在servlet里把数据处理完后,转到一个jsp页面来显示它.
registerSuccess.jsp它是一个用户登录后和用户注册后显示的页面你说这句话怎么加入呢?
要不你把脚本写在JSP页面里
原因如下:
当你 out.println("<Script language='javascript'>alert('注册成功')</Script>"); 时输出的文本会先存储在缓存中,当缓存满了后文本会一起发给客户端浏览器,当调用 response.sendRedirect() 时,此方法会先清空缓存,在向客户端发送重定向的302响应,你的脚本代码根本不会被发送到客户端浏览器,当然不会被执行。
response.sendRedirect("registerSuccess.jsp");//语句2上面的两句该成下面的一句就可以了。out.println
("<script language='javascript'>alert('注册成功');window.location="registerSuccess.jsp"</script>");//语句1
问题解决。。
一是按11楼的方法。。2是把script脚本写在了jsp文件里就行了