应该是可以用的,
但如果你的 servlet的功能函数很多,
还不如写成一个bean.

解决方案 »

  1.   

    把连接池代码充servlet中分离出来
      

  2.   

    现在都开始连接池了,厉害!
    在jsp 中可以调用你写的servlet,但是连接池我就不懂了!
      

  3.   

    import java.sql.*;
    import java.util.*;
    import javax.naming.*;
    import javax.servlet.*;
    import javax.servlet.http.*; /*
    *打印log
    *@param s 需要打印的Log
    */
    public void log(String s) 
    {
        System.out.println(s);
       }
      /*
    *打开数据库连接
    *@return JDBC Connection
    */
    public Connection connectDB()
       {
         Connection conn = null;
         try
         {
             // ============== Make connection to database ==================
    // Obtain a Datasource connection from the WebLogic JNDI tree.
                
    // Get a context for the JNDI look up
    Context ctx = new InitialContext(); // Look up myDataSource
    javax.sql.DataSource ds
                    = (javax.sql.DataSource) ctx.lookup ("weblogic.jdbc.jts.oraclePool");
    //Create a connection object
    conn = ds.getConnection();
         }
         catch(Exception e)
         {
    closeDB(conn);//关闭数据库连接
       log("[ReportBean][connectDB] Exception during openDB()" + e.getMessage());//打印log
         }
      return conn;//返回Connection
      }
      
      /*
    *关闭数据库连接
    *@param conn JDBC Connection
    */
      public void closeDB(Connection conn)
       {
         try
           {
       if (conn != null) 
       {
         conn.close();
           conn = null;
       }
           }
           catch(Exception e)
           {
       log("[ReportBean][closeDB] Exception during closeDB()" + e.getMessage());//打印log
           }
       }
      

  4.   

    import java.sql.*;
    import java.util.*;
    import javax.naming.*;
    import javax.servlet.*;
    import javax.servlet.http.*; /*
    *打印log
    *@param s 需要打印的Log
    */
    public void log(String s) 
    {
        System.out.println(s);
       }
      /*
    *打开数据库连接
    *@return JDBC Connection
    */
    public Connection connectDB()
       {
         Connection conn = null;
         try
         {
             // ============== Make connection to database ==================
    // Obtain a Datasource connection from the WebLogic JNDI tree.
                
    // Get a context for the JNDI look up
    Context ctx = new InitialContext(); // Look up myDataSource
    javax.sql.DataSource ds
                    = (javax.sql.DataSource) ctx.lookup ("weblogic.jdbc.jts.oraclePool");
    //Create a connection object
    conn = ds.getConnection();
         }
         catch(Exception e)
         {
    closeDB(conn);//关闭数据库连接
       log("[ReportBean][connectDB] Exception during openDB()" + e.getMessage());//打印log
         }
      return conn;//返回Connection
      }
      
      /*
    *关闭数据库连接
    *@param conn JDBC Connection
    */
      public void closeDB(Connection conn)
       {
         try
           {
       if (conn != null) 
       {
         conn.close();
           conn = null;
       }
           }
           catch(Exception e)
           {
       log("[ReportBean][closeDB] Exception during closeDB()" + e.getMessage());//打印log
           }
       }
      

  5.   

    我也看不明白,windyloft,你用的是什么数据库?你用的web应用服务器是不是那个sun自己的?如果是的话我就不知道该怎么调用servlet了,如果你用tomcat我完全可以为你解决:)。再说我看你还是换成tomcat的吧,现在已经是4.03的版本了,很不错。
      

  6.   

    我用的weblogic6.1.
    你会用控制台吗?(http://127.0.0.1:7001/console)
    然后看一下,把JDBC Connection Pool和JDBC Tx Data Source都建起来了.
    我的JDBC Connection Pool是这样建的,你可以参考一下。
    Name: oraclePool 
    URL:  jdbc:oracle:thin:@192.168.0.39:1521:dbname
    Driver Classname:  oracle.jdbc.driver.OracleDriver
    Properties(key=value):  user=yourUser
          server=192.168.0.39:1521:db
    我的JDBC Tx Data Source是这样建的,你可以参考一下。
    Name: oraTxDataSource 
    JNDI Name: weblogic.jdbc.jts.oraclePool
    Pool Name: oraclePool 把这些都建好了,就能跑我的程序了。