page scope 的 bean 是全局共用的。
应该就是说,所有连接访问的都是同一个 page 的话,
那他们用的都是同一个 bean 。然后你又频繁的开关,jdbc 跟不上。Connection con = null;
ResultSet rs = null;
Statement stm = null;统统的全局变量,各用户之间相互干扰,
还没开始用,就被人家关掉了。不死才怪。
 8-D

解决方案 »

  1.   

    谢谢,看了之后有些恍然大悟的感觉,书上确实是说一个bean初始化后就常驻内存,可又觉得不对,如果如你所说所有(同一个page)访问者共享的话,
    只要有两个用户一起申请连接,就会出错,可事实并不如此,而且如果将各个连接分开的话,事务操作就无法实现,我做了如下的
    测试程序:测试文件:test.jsp<%@page contentType = "text/html;charset=gb2312" %>
    <jsp:useBean id="db" class="com.DB" scope="page"/>
    <%
    String sPara=request.getParameter("para");
       if(sPara!=null&&sPara.equals("set"))
         db.set();
       db.print();  
    %>
    javabean文件:db.javapackage com;import java.io.*;
    import java.sql.*;public class DB{
        String sValue;
       
        public DB(){
              
          }
         
          public void print(){
          System.out.print("value="+sValue+"\n");  
          }
       
        public void set(){
        sValue="set!";
        }
    }
    分别用:http://127.0.0.1:8080/test.jsp
          http://127.0.0.1:8080/test.jsp?para=set
          http://127.0.0.1:8080/test.jsp
    调用,输出结果是:null
                  set!
                  null
    如果变量一直在内存的话,第三次应该是set!才对不知错在哪里,是否能给我举个数据库操作的javabean例子,还请多指点,谢谢了!
      

  2.   

    我写的页面test.jsp,我用两台机器执行,每次都输出true,查看Tomcat生成的java文件可见每次都进行实例化,各个用户之间应该不会相互有影响的,请指教!<%@page contentType = "text/html;charset=gb2312" %>
    <meta http-equiv="refresh" content="1">
    <jsp:useBean id="db" class="com.DB" scope="page"/>
    <%

       System.out.print(request.getRemoteAddr()+"   "+_jspx_specialdb+"\n");
         
    %>
      

  3.   

    我是想问多个用户在同一时刻访问同一页面时,scope属性为page的javabean的成员变量会不会相互影响,也就是上面我说的一个数据库连接被一个用户使用时,另一个用户是不是也会来用同一个连接?