不管是什么程序也不可能造成两台客户机的SESSION ID 相同呀!至少目前我还没有查到这个命令.

解决方案 »

  1.   

    好吧,既然这么说,我把程序贴出来看看.<%@ page contentType="text/html;charset=gb2312" language="java" import="java.sql.*,java.util.*,javax.servlet.http.*,javax.servlet.*"%><head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312"><%@include file="database.jsp"%><%

    session.setAttribute("startpage","index.jsp");

    String thisday=new java.util.Date().toLocaleString();
    //out.println(thisday);

    Statement sm0 = con.createStatement();
    Statement sm1 = con.createStatement();
    Statement sm2 = con.createStatement();
    Statement sm3 = con.createStatement();


    String renth="";
    String rentm="";
    String returnh="";
    String returnm="";

    %>
    <table width="760" border="0">
      <tr height="70">
        <td ><div align="center" class="style1">车辆调派一览</div></td>
      </tr>
      <tr>
        <td><table width="100%"  border="0">
    <%
    String username=request.getParameter("username");
    String password=request.getParameter("password");
    String tempname="";
    String temppass=""; String process="";
    String stateword="";

    String tpass="";
    int operator=0;

    if ((username==null) || username.equals(""))
    {
    username="";password="";
    }
    else

    ResultSet tRs3 = sm3.executeQuery("select password from caruser where username='"+username+"'");
    while(tRs3.next())
    {
    tpass=tRs3.getString("password");
    }
    if (tpass.equals(password))
    {
    operator=1;
    session.setAttribute("username",username);
    session.setAttribute("password",password);
    }

    } tempname=(String)session.getAttribute("username");
    temppass=(String)session.getAttribute("password"); if (tempname==null)
    { }
    else
    {
    username=tempname;
    password=temppass; ResultSet tRs3 = sm3.executeQuery("select password from caruser where username='"+username+"'");
    while(tRs3.next())
    {
    tpass=tRs3.getString("password");
    }
    if (tpass.equals(password))
    {
    operator=1;
    }
    }
    %>

          <tr valign="middle">
            <td width="33%"><div align="center" class="style3"><a href="propose.jsp">※填报《出车单》※</a></div></td>
            <td width="66%" align="right"><p><form method="post" action="#" name="loginpart">
    <%   
      if (operator==1)
      {
    %>   
    |<a href="showall.jsp"><所有记录></a>|<a href="statistic.jsp"><统计></a>|
    <%}%>
              管理者:
              <input type="text" name="username" value="<%=username%>"  class="input" size="10" maxlength="10">&nbsp;密码:<input type="password" name="password" value="<%=password%>"  class="input" size="10" maxlength="10">&nbsp;<input name="login" type="submit" value="登录" class="mybottom"></form></p></td>
          </tr>
        </table>
    <%
    ResultSet tRs0 = sm0.executeQuery("select DISTINCT rentdate from arrangement where DATEADD(dd,1,rentdate)>'"+thisday+"' and process <>'3' order by rentdate ");
    while(tRs0.next())
    {
    String curday=tRs0.getString("rentdate");
    %>

          
          <table width="100%"  border="1">
            <tr bgcolor="#D9ECFF">
              <td colspan="7"><div align="center" class="style2">
                <p><%out.println(curday.substring(0,4)+"年"+curday.substring(5,7)+"月"+curday.substring(8,10)+"日");%></p>
              </div></td>
            </tr>
            <tr bgcolor="#FFFFFF">
              <td colspan="7"><div align="left" class="style2 style6">已派车辆:</div></td>
            </tr>
            <tr bordercolor="#D4D0C8" bgcolor="#ECECFF">
              <td><div align="center" class="style2">驾驶员</div></td>
              <td><div align="center" class="style2">用车时间</div></td>
              <td><div align="center" class="style2">预计返回时间</div></td>
              <td><div align="center" class="style2">地点</div></td>
              <td><div align="center" class="style2">用车人数</div></td>
              <td><div align="center" class="style2">申请人</div></td>
              <td><div align="center" class="style2">操作</div></td>
            </tr>
      

  2.   

    <%
    ResultSet tRs1 = sm1.executeQuery("select * from arrangement where rentdate='"+curday+"' and process='2' order by renttimeh ");

    while(tRs1.next())
    {
      rentm=tRs1.getString("renttimem");
      if (rentm.length()<=1) { rentm="0"+tRs1.getString("renttimem");}
      returnm=tRs1.getString("returntimem");
      if (returnm.length()<=1) { returnm="0"+tRs1.getString("returntimem");}
      
      %><form action="arrange.jsp" method="post"><%
              out.println("<tr bordercolor=\"#D4D0C8\" align=\"center\">");
      out.println("<td><span class=\"style2\">"+tRs1.getString("driver")+"</span></td>");
      out.println("<td><span class=\"style2\">"+tRs1.getString("renttimeh")+":"+rentm+"</span></td>");
      out.println("<td><span class=\"style2\">"+tRs1.getString("returntimeh")+":"+returnm+"</span></td>");
      out.println("<td><span class=\"style2\">"+tRs1.getString("destination")+"</span></td>");
      out.println("<td><span class=\"style2\">"+tRs1.getString("usercount")+"</span></td>");
      out.println("<td><span class=\"style2\">"+tRs1.getString("proposer")+"</span></td>");
      %>
      <input name="id" type="hidden" value="<%=tRs1.getString("id")%>">   
      <td><span class="style2">
    <%   
      if (operator==1)
      {
    %>   
      <input name="arrange1" type="submit" value="调派"  class="mybottom">&nbsp;
    <%
      }
      else
      {
       out.println("未登录");
      }
    %>   
     </span></td>
     </tr>
     </form>
     <%



    }
    tRs1.close();  
    %>
            <tr bordercolor="#D4D0C8" bgcolor="#FFFFFF" >
              <td colspan="7"><span class="style8">待派车辆:</span></td>
            </tr>
            <tr bordercolor="#D4D0C8" bgcolor="#ECECFF">
              <td><div align="center" class="style2">目前状态</div></td>
              <td><div align="center" class="style2">用车时间</div></td>
              <td><div align="center" class="style2">预计返回时间</div></td>
              <td><div align="center" class="style2">地点</div></td>
              <td><div align="center" class="style2">用车人数</div></td>
              <td><div align="center" class="style2">申请人</div></td>
              <td><div align="center" class="style2">操作</div></td>
            </tr>
    <%
    ResultSet tRs2 = sm2.executeQuery("select * from arrangement where rentdate='"+curday+"' and (process='1' or process='4' or process='5') order by renttimeh");

    while(tRs2.next())
    {
      rentm=tRs2.getString("renttimem");
      if (rentm.length()<=1) { rentm="0"+rentm;}
      returnm=tRs2.getString("returntimem");
      if (returnm.length()<=1) {  returnm="0"+returnm;}
      
              out.println("<tr bordercolor=\"#D4D0C8\" align=\"center\">");
      
      %><form action="arrange.jsp" method="post"><%
      
      process=tRs2.getString("process");

    stateword="其他";
    if (process.equals("1"))
    {
    stateword="<font color=blue>等待调派<font>";
    }
    if (process.equals("4"))
    {
    stateword="<font color=red>因延迟而被取消<font>";
    }
    if (process.equals("5"))
    {
    stateword="<font color=red>已无车<font>";
    }
      out.println("<td><span class=\"style2\">"+stateword+"&nbsp;</span></td>");
      out.println("<td><span class=\"style2\">"+tRs2.getString("renttimeh")+":"+rentm+"</span></td>");
      out.println("<td><span class=\"style2\">"+tRs2.getString("returntimeh")+":"+returnm+"</span></td>");
      out.println("<td><span class=\"style2\">"+tRs2.getString("destination")+"</span></td>");
      out.println("<td><span class=\"style2\">"+tRs2.getString("usercount")+"</span></td>");
      out.println("<td><span class=\"style2\">"+tRs2.getString("proposer")+"</span></td>");
      %>
      <input name="id" type="hidden" value="<%=tRs2.getString("id")%>">   
      <td><span class="style2">
    <%   
      if (operator==1)
      {
    %>   
      <input name="arrange1" type="submit" value="调派"  class="mybottom">&nbsp;
    <%
      }
      else
      {
       out.println("未登录");
      }
    %>   
      </span></td>
              </tr>
      </form>
      <%
      
    }
    tRs2.close();  
    %>
            <tr bordercolor="#D4D0C8">
              <td colspan="6"><span class="style2"></span></td>
            </tr>
          </table>
      
    <%
    }
    con.close();
    %>   
      
            
          <table width="100%"  border="0">
            <tr>
              <td>&nbsp;</td>
            </tr>
          </table>      <p>&nbsp;</p>
        <p>&nbsp;</p>
    </td>
      </tr>
    </table></body>
      

  3.   

    略过那些HTML文本,我简化了一下,把最主要的服务端脚本拿出来,这样会清楚些.但不管怎么看,都没有涉及到普通SESSION 以外的命令.
    <%@ page contentType="text/html;charset=gb2312" language="java" import="java.sql.*,java.util.*,javax.servlet.http.*,javax.servlet.*"%>
    <%

    session.setAttribute("startpage","index.jsp");

    String thisday=new java.util.Date().toLocaleString();
    //out.println(thisday);

    Statement sm0 = con.createStatement();
    Statement sm1 = con.createStatement();
    Statement sm2 = con.createStatement();
    Statement sm3 = con.createStatement();


    String renth="";
    String rentm="";
    String returnh="";
    String returnm="";
    %>
    <table width="100%"  border="0">
    <%
    String username=request.getParameter("username");
    String password=request.getParameter("password");
    String tempname="";
    String temppass="";String process="";
    String stateword="";

    String tpass="";
    int operator=0;

    if ((username==null) || username.equals(""))
    {
    username="";password="";
    }
    else

    ResultSet tRs3 = sm3.executeQuery("select password from caruser where username='"+username+"'");
    while(tRs3.next())
    {
    tpass=tRs3.getString("password");
    }
    if (tpass.equals(password))
    {
    operator=1;
    session.setAttribute("username",username);
    session.setAttribute("password",password);
    }

    }tempname=(String)session.getAttribute("username");
    temppass=(String)session.getAttribute("password");if (tempname==null)
    {}
    else
    {
    username=tempname;
    password=temppass; ResultSet tRs3 = sm3.executeQuery("select password from caruser where username='"+username+"'");
    while(tRs3.next())
    {
    tpass=tRs3.getString("password");
    }
    if (tpass.equals(password))
    {
    operator=1;
    }
    }
    %>
    <tr valign="middle">
    <td width="33%">
    <%
      
     if (operator==1)
    {%>   |<a href="showall.jsp"><所有记录></a>|<a href="statistic.jsp"><统计></a>|<%}%>
              管理者:
              <input type="text" name="username" value="<%=username%>"  class="input" size="10" maxlength="10">&nbsp;密码:<input type="password" name="password" value="<%=password%>"  class="input" size="10" maxlength="10">&nbsp;<input name="login" type="submit" value="登录" class="mybottom"></form></p></td>
       </tr>
    </table>
      

  4.   

    虽然我没有遇到过,但是应该不是你的程序的问题。如果是两个session id一样的话,那应该是Tomcat的session id generator的问题。
      

  5.   

    tomcat有的时候确实会有问题的,我想程序不会让session的id相同吧,因为我们本身并不控制它。
    建议你换resin服务器试一下。记得有一次我吃饭的时候待机了一下,回来后tomcat就不能运行javabean了
      

  6.   

    我在开机第一次登录后用MYIE2返回登录界面刷新,等SESSION ID 建立后关闭MYIE2,就会出现这种情况,再次登录时则没有。不过看来应该不是程序的问题,恐怕还是和TOMCAT有关,不在讨论范围了。多谢各位!