在tomcat中配置连接池

部署到tomcat后,src目录下的配置文件会和class文件一样,自动copy到应用的 classes目录下

1、 把oracle驱动jar包拷贝到<CATALINA_HOME>/lib目录;
      在MyEclipse中新建web project工程,并且把 oracle驱动jar 加入到工程的buildpath中。
--------------------------------------------------------------------------------------------------------------------

2、 在工程的webroot/META-INF目录下增加context.xml文件(实际反映到<CATALINA_HOME>/webapps/app应用/ 目录下),其内容:
<?xml version="1.0" encoding="UTF-8"?>
<Context  reloadable="true" >
  <Resource name="jdbc/1872" auth="Container" type="javax.sql.DataSource"
     maxActive="100" maxIdle="30" maxWait="10000"
     username="equipmanage" password="test"
     driverClassName="oracle.jdbc.driver.OracleDriver"
     url="jdbc:oracle:thin:@192.168.187.9:1521:hngolf"/>  
</Context>
--------------------------------------------------------------------------------------------------------------------

3、 在web.xml中引用数据库连接池资源:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
        <http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd>">

        <resource-ref>
                <description>1872 Connection</description>
                <res-ref-name>jdbc/1872</res-ref-name>
                <res-type>javax.sql.DataSource</res-type>
                <res-auth>Container</res-auth>
        </resource-ref>

        <welcome-file-list>
                <welcome-file>index.jsp</welcome-file>
        </welcome-file-list>
</web-app>

       说明: 注意   jdbc/1872 和 第二步中的context.xml中 resource的name属性的值保持一致。
--------------------------------------------------------------------------------------------------------------------

4、 编写cn.tsp2c.stu.JdbcUtil.java
package cn.tsp2c.stu;

import java.sql.Connection;
import java.sql.SQLException;

import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.sql.DataSource;

public final class JdbcUtil {

        public static Connection getConnection() {
                DataSource ds = null;

                Context context = null;
                try {
                        context = new InitialContext();
                        ds = (DataSource) context.lookup("java:comp/env/jdbc/1872");
                        return ds.getConnection();
                } catch (NamingException e) {
                        e.printStackTrace();
                } catch (SQLException e) {
                        e.printStackTrace();
                }
                return null;
        }
}

      说明: 注意 高亮部分中的 jdbc/1872 和 第二步中的context.xml中 resource的name属性的值保持一致。
--------------------------------------------------------------------------------------------------------------------

5、编写index.jsp
<%@ page language="java" import="java.util.*,cn.tsp2c.stu.*" pageEncoding="gbk"%>
<%@page import="java.sql.Connection"%>
<%@page import="java.sql.PreparedStatement"%>
<%@page import="java.sql.ResultSet"%>
<%@page import="java.sql.SQLException"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
   
    <title>My JSP 'index.jsp' starting page</title>
        <meta http-equiv="Content-Type" content="text/html; charset=gbk" />
        <!--
        <link rel="stylesheet" type="text/css" href="styles.css">
        -->
  </head>
  
  <body>
    <form method="post" name="stuform" action="">
    <%!
    Connection conn = null;
    PreparedStatement psmt = null;
    ResultSet rs = null;  
    %>
    <%
    try{
            conn = JdbcUtil.getConnection();
            if(conn == null){
                    //
            }
            String sqlStr = "select * from tb_student";
            psmt = conn.prepareStatement(sqlStr);
            rs = psmt.executeQuery();
    %>
    <table border="1">
        <tr><th> 学号</th><th>姓名</th><th>年龄</th><th>性 别</th><th>电话</th><th>住址</th></tr>
    <%
            while(rs.next()){
    %>
        <tr>    
                    <td><%= rs.getString("sid")%></td>
                    <td><%= rs.getString("sname")%></td>
                    <td><%= rs.getInt("age")%></td>
                    <td><%= rs.getString("gender")%></td>
                    <td><%= rs.getString("phone")%></td>                    
                    <td><%= rs.getString("address")%></td>
            </tr>
    <%
            }
    }catch(Exception e){
            e.printStackTrace();
    }finally{
            try{
                    rs.close();
                    psmt.close();
                    conn.close();
            }catch(SQLException e){
                    e.printStackTrace();
            }
    }    
    %>
    </table>
    </form>
  </body>
</html>

posted on 2012-02-07 10:46  lovebeauty  阅读(294)  评论(0编辑  收藏  举报

导航