<%@ page import="java.sql.*"%>
<%@ page import="javax.sql.*"%>
<%@ page import="javax.naming.*"%>
<%@ page session="false" %>
<%@page contentType="text/html;charset=gb2312"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>Test of SQL Server connection pool</title>
</head>
<body>
<%
out.print("Start");
try{
Context initCtx = new InitialContext();
Context ctx = (Context) initCtx.lookup("java:comp/env");
Object obj = (Object) ctx.lookup("zcwy");
javax.sql.DataSource ds = (javax.sql.DataSource)obj;
Connection conn = ds.getConnection();
out.print("SQL Server connection pool runs perfectly!");%>
<%
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); 
String sql="select * from wl_user"; 
//titles为SQLSERVER2000的默认数据库pubs中的默认表 
ResultSet rs=stmt.executeQuery(sql); 
while(rs.next()) {%>
您的第一个字段内容为:<%=rs.getString(1)%> 
您的第二个字段内容为:<%=rs.getString(2)%>
<%}%> 
<%out.print("数据库操作成功,恭喜你");%> 
<%rs.close(); 
stmt.close(); conn.close();
}
catch(Exception ex){
out.print(ex.getMessage());
ex.printStackTrace();
}
%>
</body>
</html>
--------------------------
运行报错如下
javax.servlet.ServletException: Name jdbc is not bound in this Context
-------------===web.xml如下:
<?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE web-app 
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" 
"http://java.sun.com/dtd/web-app_2_3.dtd"> <web-app> 
<resource-ref> 
     <description>MySQL Connection Pool</description> 
     <res-ref-name>JDBC for MySQL</res-ref-name> 
    <res-type>javax.sql.DataSource</res-type> 
    <res-auth>Container</res-auth> 
</resource-ref></web-app>

解决方案 »

  1.   

    tomcat 5.0 
    D:\Tomcat 5.0\conf\Catalina\localhost
    在这里增加一个配置文件 website.xml
    如下:要修改你对应的数据库
    <?xml version='1.0' encoding='utf-8'?>
    <Context docBase="D:\worksrc\compare" path="/compare" reloadable="true">
      <Resource auth="Container" name="jdbc/compare" type="javax.sql.DataSource"/>
      <ResourceParams name="jdbc/compare">
        <parameter>
          <name>factory</name>
          <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
        </parameter>
        <parameter>
          <name>maxWait</name>
          <value>-1</value>
        </parameter>
        <parameter>
          <name>maxActive</name>
          <value>10</value>
        </parameter>
        <parameter>
          <name>username</name>
          <value>comp</value>
        </parameter>
        <parameter>
          <name>password</name>
          <value>comp</value>
        </parameter>
        <parameter>
          <name>url</name>
          <value>jdbc:oracle:thin:@141.20.170.58:1521:test</value>
        </parameter>
        <parameter>
          <name>driverClassName</name>
          <value>oracle.jdbc.driver.OracleDriver</value>
        </parameter>
        <parameter>
          <name>maxIdle</name>
          <value>1</value>
        </parameter>  </ResourceParams>
    </Context>
      

  2.   

    你手动配的还是在tomcat管理界面里面配的我怎么只看到你在web.xml里引用这个数据源但是没有看到数据源的配置文件
      

  3.   

    那你进去管理界面确认一下是不是commit了
      

  4.   

    <resource-ref> 
         <description>MySQL Connection Pool</description> 
         <res-ref-name>JDBC for MySQL</res-ref-name> 
        <res-type>javax.sql.DataSource</res-type> 
        <res-auth>Container</res-auth> 
    </resource-ref>这一行怎么是
     <res-ref-name>JDBC for MySQL</res-ref-name> 
     你的数据源的名字是 zcwy 这个吧
      

  5.   

    Context initCtx = new InitialContext();
    Context ctx = (Context) initCtx.lookup("java:comp/env");
    Object obj = (Object) ctx.lookup("zcwy");
    //////////
    这样得到数据源不久可以了吗
     Context ctx=new InitialContext();
      DataSource ds=(DataSource)ctx.lookup("java:comp/env/zcwy");
      

  6.   

    这一行怎么是
     <res-ref-name>JDBC for MySQL</res-ref-name> 
     你的数据源的名字是 zcwy 这个吧,
    这个用zcwy也试过了,还是不行