Fork me on GitHub

配置Tomcat服务器数据连接池

优势:由于HTTP协议的web程序是无状态的,在应用程序使用JDBC时,多次请求处理客户端都会重新建立连接,如果请求繁忙,将会消耗非常多的资源。

   数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是重新建立。

  配置全局数据库连接池:

  配置局部数据库连接池:

 

在Tomcat安装目录下, conf\server.xml中

  <GlobalNamingResources>标签下

添加

 <Resource name="jdbc/webdb" 
             auth="Container" 
	     type="javax.sql.DataSource"
             driverClassName="com.mysql.jdbc.Driver"
             url="jdbc:mysql://localhost:3306/shop?characterEncoding=utf-8"
             username="root" 
             password="root" 
             maxActive="200" 
             maxIdle="50" 
             maxWait="3000" 
   />

 在conf\Catalina\localhost

创建以web命名的xml

<?xml version='1.0' encoding='utf-8'?>
<Context path ="/webdemo" docBase="webdemo" debug="0">
		<ResourceLink name="jdbc/webdb" global="jdbc/webdb"  
type="javax.sql.DataSource"/>	
	
</Context>

 创建Servlet

package com.demo.servlet;

import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.sql.DataSource;

public class HelloWorldServlet extends HttpServlet {

	public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException,IOException{
		//设置HTTP响应头的ContentType字段值
		response.setContentType("text/html; charset=UTF-8");
		
		//获取用于输入输出消息的PrintWriter对象
		PrintWriter out = response.getWriter();
		
		try {
			//或得Context对象
			Context context = new InitialContext();
			DataSource ds = (DataSource) context.lookup("java:/comp/env/jdbc/webdb");
			//获得Connetion对象
			Connection connection = ds.getConnection();
			PreparedStatement statement = connection.prepareStatement("select * from memberlevel");
			
			ResultSet rs = statement.executeQuery();
			StringBuffer table = new StringBuffer();
			table.append("<table border='1'>");
			table.append("<tr><td>ID</td><td>级别</td><td>积分</td></tr>");
			while(rs.next()){
				
				table.append("<tr><td>"+rs.getString("ID")+"</td><td>"+rs.getString("LevelName")+"</td><td>"+rs.getString("Favourable")+"</td></tr>");
			
			}
			table.append("</table>");
			
			out.println(table.toString());
		} catch (Exception e) {
			out.println(e.getMessage());
		}
		
		
	}
}

 在lib中加入mysql的jar包

web.xml配置

之后请求

http://localhost:8080/webdemo/servlet/HelloWorldServlet

结果:

配置局部数据库连接池将web命名的xml中内容替换即可

<Context path ="/webdemo" docBase="webdemo" debug="0">
。。。。。。
配置
</Context>

 

posted @ 2016-06-07 21:03  淡无心  阅读(1152)  评论(0编辑  收藏  举报