<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<%@ page contentType="text/html; charset=GBK" language="java"%>
<%
  String email = request.getParameter("email");
  String nickName = request.getParameter("nickName");
  out.println(email);
  out.println(nickName);
  out.println("seepw");
  out.flush();
%><html>
<head>
<title>检查页面</title>
<script type="text/javascript">
        var email =  window.dialogArguments.window.document.getElementById("email").value;
        alert(email);  //这先弹出alert窗口
    var nickName =  window.dialogArguments.window.document.getElementById("nickName").value; 
    alert(nickName);
</script>
</head>
 <body>
  <center>
  <input type="button" value="关闭" onClick="javascript:self.close()" style="color:blue">
</center>
</body>
</html>为什么是先弹出alert弹出,然后再是out.println()方法里的内容,我加上了out.flush()排除了缓冲的可能,但还有什么原因会这样呢?

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【fuyou001】截止到2008-07-17 11:16:10的历史汇总数据(不包括此帖):
    发帖的总数量:159                      发帖的总分数:4285                     每贴平均分数:26                       
    回帖的总数量:984                      得分贴总数量:366                      回帖的得分率:37%                      
    结贴的总数量:158                      结贴的总分数:4255                     
    无满意结贴数:19                       无满意结贴分:745                      
    未结的帖子数:1                        未结的总分数:30                       
    结贴的百分比:99.37 %               结分的百分比:99.30 %                  
    无满意结贴率:12.03 %               无满意结分率:17.51 %                  
    值得尊敬
      

  2.   

    你看看这个jsp 相应的java文件 就知道顺序了
      

  3.   

    晕,java代码是在服务器端执行,js是在客户端执行,当然是java代码先执行啊。你的判断有误,不可能alert()先执行。
      

  4.   

    是呀,看看它相应JAVA文件,不就可以了吗?
      

  5.   

    楼上说的对,楼主再好好看看,一定是先输出
    out.println(email);
      out.println(nickName);
      out.println("seepw");
    前两个可以不管,因为有可能为空,但第三个一定是在alert之前的,
      

  6.   

    我已看,刚才忘了贴出来了
          out.write("<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">\r\n");
          out.write("<html xmlns=\"http://www.w3.org/1999/xhtml\">\r\n");
          out.write("\r\n");  String email = request.getParameter("email");
      String nickName = request.getParameter("nickName");
      out.println(email);
      out.println(nickName);
      out.println("seepw");
      out.flush();      out.write("\r\n");
          out.write("\r\n");
          out.write("<html>\r\n");
          out.write("<head>\r\n");
          out.write("\t<title>检查页面</title>\r\n");
          out.write("\t<script type=\"text/javascript\">\r\n");
          out.write("        var email =  window.dialogArguments.window.document.getElementById(\"email\").value;\r\n");
          out.write("        alert(email);\r\n");
          out.write("  \t\t\t var nickName =  window.dialogArguments.window.document.getElementById(\"nickName\").value; \r\n");
          out.write("  \t\t\t alert(nickName);\r\n");
          out.write("\t</script>\r\n");
          out.write("</head>\r\n");
          out.write(" <body>\r\n");
          out.write(" \t<center>\r\n");
          out.write(" \t<input type=\"button\" value=\"关闭\" onClick=\"javascript:self.close()\" style=\"color:blue\">\r\n");
          out.write("</center>\r\n");
          out.write("</body>\r\n");
          out.write("</html>");
        } catch (Throwable t) {
      

  7.   

    可我机器上的执行结果就是先alert,后out.println();尽管在类源文件里out.println 是在alert()方法前
      

  8.   

      out.println(email);
      out.println(nickName);
      out.println("seepw");
      out.flush();
    是会先输出的
      

  9.   

    JSP的最后被翻译成Servlet,而Servlet一般的作用就是输出很多的HTML代码.首先是Servlet运行结束-->就是输出HTML包括JS代码.然后就给浏览器运行.浏览器只能执行HTML+JS代码等...
      

  10.   


    肯定是先out.println() 然后alert 只是因为你用浏览器 ,显示和弹出 间隔太慢没有分清那个在前那个在后弹出的时候 页面上已经显示要打印的内容了吧