一般打开窗体,应该有一个窗体变量,通过变量名可以确定是否为null.

解决方案 »

  1.   

    可以用session
    <%@ page contentType="text/html;charset=gb2312" import="java.math.*" %>
    <a href="h2.jsp">h2</a>
    <%
    Boolean login=(Boolean)session.getAttribute("login");
    if (login==null||(!login.booleanValue())) {
    %>
    <script language="JavaScript">
    <!--
    window.open("","","");
    //-->
    </script>
    <%
    session.setAttribute("login",new Boolean(true));
    }
    %>
      

  2.   

    用cookie的方法
    <body onload="loadpopup()">
    <script> 
    function openwin() 
    {window.open("page.html","","width=200,height=200")} 
    function get_cookie(Name) 
    {var search = Name + "=" 
    var returnvalue = ""; 
    if (document.cookie.length > 0) { 
    offset = document.cookie.indexOf(search) 
    if (offset != -1) { 
    offset += search.length 
    end = document.cookie.indexOf(";", offset); 
    if (end == -1) 
    end = document.cookie.length; 
    returnvalue=unescape(document.cookie.substring(offset,end)) 


    return returnvalue; 

    function loadpopup(){ 
    if (get_cookie('popped')==''){ 
    openwin() 
    document.cookie="popped=yes" 


    </script>
      

  3.   

    楼主想要的,其实javascript就可以办到了,不需要JSP这么麻烦。
    给打开的窗口定义一个名字就可以了,像下面这样:
    function openwin(){
    window.open("page.html","mywindow","width=200,height=200");
    }mywindow就是窗口的名字。就是这个道理!检测到打开时,这个窗口就不会重复打开了。
    像china-pub的购物车窗口就是这样做的。
      

  4.   

    我写的那两种方法是避免用户刷新页面而反复弹出窗口,如果想实现用按钮方式只弹出一次窗口,可以这样
    <SCRIPT language=javascript>
    <!-- 
    var newWindow = null
    function windowOpener()

    if (! newWindow || newWindow.closed)
    {
    newWindow = window.open("","newWindow","toolbar,resizable,scrollbars=no,dependent,width=410,height=300");
    }else
    {
    newWindow.focus();
    }
    }
    //end-->
    </SCRIPT>
    <input type=button value=open onclick="windowOpener();newWindow=null">
      

  5.   

    xunyiren(从jsp开始) 不能获得焦点