tomcat使用JDNI配置信息和使用信息。用于JDBC连接池
JNDI:
JNDI(java Naming and Directory Interface),java命名和目录接口。JNDI的作用就是:在服务器上配置资源,然后通过统一的方式来获取配置的资源
在tomcat中配置资源:
配置在Context中。一般我们将JDNI配置的资源放在tomcat下的conf-->Catalina-->localhost文件夹中
配置文件名为: 项目名.xml
例子:
<Context>
<!--
name:指定资源的名称
factory:资源由谁负责创建.factory基本是固定的
type:资源的类型
其他的东西都是资源的参数
-->
<Resource name="jdbc/dataSource"
factory="org.apache.naming.factory.BeanFactory"
type="com.mchange.v2.c3p0.ComboPooledDataSource"
jdbcUrl="jdbc:mysql://127.0.0.1:3306/demo"
driverClass="com.mysql.jdbc.Driver"
user="guodaxia"
password="961012gz"
acquireIncrement="3"
initialPoolSize="10"
/>
</Context>
2、获取资源
配置资源的目的当然是为了获取资源了。只要你启动了Tomcat,那么就可以在项目中任何类中通过JNDI获取资源的方式
来获取资源了。
例子:
Context initCtx=new InitialContext();
Context envCtx=(Context)initCtx.lookup("java:comp/env"); //java:comp/env也基本上是固定的
DataSource dataSource=(DataSource)envCtx.lookup("jdbc/dataSource");
Connection con=dataSource.getConnection();
获取资源:
Context:javax.naming.Context;
InitialContext:javax.naming.InitialContext;
lookup(String)获取资源的方法,其中“java:comp/env"是资源的入口,这是固定的名称,"jdbc.dataSource"对应Resource
中配置的name值,这回获取的就是资源对象了
例子:
<Context>
<!--
name:指定资源的名称
factory:资源由谁负责创建
type:资源的类型
其他的东西都是资源的参数
-->
<Resource name="jdbc/dataSource"
factory="org.apache.naming.factory.BeanFactory"
type="com.mchange.v2.c3p0.ComboPooledDataSource"
jdbcUrl="jdbc:mysql://127.0.0.1:3306/demo"
driverClass="com.mysql.jdbc.Driver"
user="guodaxia"
password="961012gz"
acquireIncrement="3"
initialPoolSize="10"
/>
</Context> package cn.itcast.servlet; import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.SQLException; 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 AServlet extends HttpServlet { /**
*
*/
private static final long serialVersionUID = 1L; public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
try {
/*
* 1、创建JNDI的上下文对象
*/
Context context=new InitialContext();
// //2、查询进入入口
// context=(Context) context.lookup("java:comp/env");
// //3、查询创建指定bean
// DataSource dataSource=(DataSource) context.lookup("jdbc/dataSource"); //第二和第三步骤可以合为一步
DataSource dataSource=(DataSource) context.lookup("java:comp/env/jdbc/dataSource");
//4、得到Connection对象
Connection conn=dataSource.getConnection();
System.out.println(conn);
} catch (NamingException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
} public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException { response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
out.println("<HTML>");
out.println(" <HEAD><TITLE>A Servlet</TITLE></HEAD>");
out.println(" <BODY>");
out.print(" This is ");
out.print(this.getClass());
out.println(", using the POST method");
out.println(" </BODY>");
out.println("</HTML>");
out.flush();
out.close();
} }
所用jar:

tomcat使用JDNI配置信息和使用信息。用于JDBC连接池的更多相关文章
- Tomcat 的 JDBC 连接池
JDBC 连接池 org.apache.tomcat.jdbc.pool 是 Apache Commons DBCP 连接池的一种替换或备选方案. 那究竟为何需要一个新的连接池? 原因如下: Comm ...
- 利用jdbc连接池(利用jdni)
简介 前段时间用jdbc连接池,在这里记录下 1.利用jdni配置数据源 在Web项目的META-INF文件夹中新建context.xml文件,内容为: <?xml version=" ...
- spring boot(10)-tomcat jdbc连接池
默认连接池 tomcat jdbc是从tomcat7开始推出的一个连接池,相比老的dbcp连接池要优秀很多.spring boot将tomcat jdbc作为默认的连接池,只要在pom.xml中引入了 ...
- 使用了Tomcat JDBC连接池不能重连的问题
在项目中用到了tomcat 的jdbc连接池,发现一个问题是,当数据库重启时,服务没有重新的去连接数据库,需要将部署的项目重新启动才能连接到数据库.经过测试对配置做一下修改: 在配置dataSourc ...
- Spring boot (12) tomcat jdbc连接池
默认连接池 tomcat jdbc是从tomcat7开始推出的一个连接池,相比老的dbcp连接池要优秀很多,spring boot将tomcat jdbc作为默认的连接池,只要在pom.xml中引入了 ...
- 001-http-总览、文件配置、常用http client、http连接池
一.概述 http请求项目搭建:地址:https://github.com/bjlhx15/common-study.git 中的common-http 主要针对post请求中的,form表单[app ...
- (Win10)Java,Maven,Tomcat8.0,Mysql8.0.15安装与环境配置,以及IDEA2019.3使用JDBC连接MySQL、创建JavaEE项目
之前用windows+linux的双系统,最近不怎么舒服就把双系统给卸了,没想到除了问题,导致有linux残余,于是就一狠心重装了电脑,又把Java及其相关的一些东西重新装了回来,还好当初存了网盘链接 ...
- quartz 2.2.1 jdbc 连接池参数配置
/** The JDBC database driver. */指定连接驱动 public static final String DB_DRIVER = "driver"; /* ...
- Tomcat配置连接池的java实现
1.准备 JNDI(Java Naming and Directory Interface),Java命名和目录接口.JNDI的作用就是:在服务器上配置资源,然后通过统一的方式来获取配置的资源.我们这 ...
随机推荐
- 工具类之Condition
再次看到Condition,第一感觉还是觉得它和Mutex的功能是一样的,没必要存在.心里这么想,其实自己也知道怎么可能多余呢?老老实实的再分析一下代码,这次一定要把理解出来的内容记下来!都怪平时写代 ...
- PHP-Manual的学习----【语言参考】----【类型】-----【array数组】
1.Array 数组 PHP 中的 数组 实际上是一个有序映射.映射是一种把 values 关联到 keys 的类型.此类型在很多方面做了优化,因此可以把它当成真正的数组,或列表(向量),散列表(是 ...
- sublime中如何安装vue.js插件,并使代码高亮显示
前提概要: sublime的下载地址:http://www.sublimetext.com/ notepad++下载地址:https://notepad-plus-plus.org/ .vue的文件在 ...
- Aeroplane chess(简单概率dp)
Hzz loves aeroplane chess very much. The chess map contains N+1 grids labeled from 0 to N. Hzz start ...
- EasyDSS流媒体服务器软件对数据库Sqlite3和MySQL的同时支持说明
EasyDSS流媒体音视频直播与点播服务器软件,是一套提供一站式的转码.点播.直播.检索.回放.录像下载服务的高性能RTMP/HLS/HTTP-FLV流媒体服务,极大地简化了流媒体相关业务的开发和集成 ...
- java高级主题
1 java.util.concurrent.locks.LockSupport park:阻塞线程. unpark:解除阻塞线程. 线程阻塞最基础的组件. 2 sun.misc.Unsafe 可以用 ...
- 我的Android进阶之旅------>FastJson的简介
在最近的工作中,在客户端和服务器通信中,需要采用JSON的方式进行数据传输.简单的参数可以通过手动拼接JSON字符串,但如果请求的参数过多,采用手动拼接JSON字符串,出错率就非常大了.并且工作效率也 ...
- 基本操作——word中怎样同一页中放入多张图片
可能很多人在放图片时候,碰见这种情况,习惯性的把图片拖进word,发现不能在一页上很工整的排列.很多人包括我刚开始也纳闷,怎么不能一页中放入几张图片呢,缩放也不想.下面分享一个小技巧给有缘人 以我的w ...
- python 发送邮件的两种方式【终极篇】
一,利用python自带的库 smtplib简单高效 from email.mime.multipart import MIMEMultipart from email.mime.text impor ...
- hadoop自带例子SecondarySort源码分析MapReduce原理
这里分析MapReduce原理并没用WordCount,目前没用过hadoop也没接触过大数据,感觉,只是感觉,在项目中,如果真的用到了MapReduce那待排序的肯定会更加实用. 先贴上源码 pac ...