JNDI - TOMCAT6.0

在tomcat6.0.18下手动配置jndi
服务器:tomcat6.0.18
数据库:mysql-6.0.3-alpha-win32
数据库驱动:mysql-connector-java-5.0.7-bin.jar
一.jndi简介
JNDI(Java Naming and Directory Interface)是一个应用程序设计的API,为开发人员提供了查找和访问各种命名和目录服务的通用、统一的接口,类似JDBC都是构建在抽象层上。
具体详细资料,网上已经很多了,对吧?
二.手动建立一个简单的WEB工程(在webapps下建立工程test-jndi)
1.建立文件夹,名称为:test-jndi
2.在test-jndi文件夹下建立名为WEB-INF文件夹和index.html页面
index.html页面内容很简单,主要用于测试工程是否建立成功

Html代码
1.<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> 
2.<HTML><HEAD><TITLE>测试成功</TITLE> 
3.<META http-equiv=Content-Type content="text/html"> 
4.</HEAD> 
5.<BODY> 
6.<P> 
7.<H3>成功了</H3> 
8.<P>ok,可以了</P> 
9.</BODY> 
10.</HTML> 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD><TITLE>测试成功</TITLE>
<META http-equiv=Content-Type content="text/html">
</HEAD>
<BODY>
<P>
<H3>成功了</H3>
<P>ok,可以了</P>
</BODY>
</HTML>

3.在WEB-INF文件夹下建立名为lib文件夹和web.xml
web.xml

Xml代码
1.<?xml version="1.0" encoding="ISO-8859-1"?> 
2.<web-app xmlns="http://java.sun.com/xml/ns/javaee" 
3.   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
4.   xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
5.   version="2.5">   
6.    <description> 
7.      jndi test  
8.    </description> 
9.    <display-name>jndi test </display-name> 
10.    <welcome-file-list> 
11.    <welcome-file>index.html</welcome-file>       
12.   </welcome-file-list> 
13.   </web-app> 
<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app 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"
   version="2.5">
    <description>
      jndi test
    </description>
    <display-name>jndi test </display-name>
    <welcome-file-list>
<welcome-file>index.html</welcome-file>
   </welcome-file-list>
   </web-app>

启动tomcat,在地址栏输入:http://localhost:8080/test-jndi/
显示ok,成功----说明,手动建立工程成功。接下来就是配置jndi了,呵呵。
三.配置jndi.)
1.将mysql-connector-java-5.0.7-bin.jar放入tomcat下lib文件夹下
2.在tomcat下config/server.xml中<host>之间下加入

Xml代码
1.<Context docBase="test-jndi" path="/test-jndi" reloadable="true"> 
2.  <Resource   
3.      name="jdbc/test" 
4.      auth="Container" 
5.      type="javax.sql.DataSource" 
6.      username="root" 
7.      password="123456" 
8.      driverClassName="com.mysql.jdbc.Driver" 
9.      url="jdbc:mysql://localhost:3306/exam" 
10.      maxActive="8" 
11.      maxIdle="4"/></Context> 
<Context docBase="test-jndi" path="/test-jndi" reloadable="true">
   <Resource
       name="jdbc/test"
       auth="Container"
       type="javax.sql.DataSource"
       username="root"
       password="123456"
       driverClassName="com.mysql.jdbc.Driver"
       url="jdbc:mysql://localhost:3306/exam"
       maxActive="8"
       maxIdle="4"/></Context>

jdbc/test是你的jdbc datasource名字。
3.在test-jndi工程中的WEB-INF/web.xml中加入

Xml代码
1.<resource-ref> 
2.      <description>jndi</description> 
3.      <res-ref-name>jdbc/test</res-ref-name> 
4.      <res-type>javax.sql.DataSource</res-type> 
5.      <res-auth>Container</res-auth> 
6.  </resource-ref> 
<resource-ref>
      <description>jndi</description>
      <res-ref-name>jdbc/test</res-ref-name>
      <res-type>javax.sql.DataSource</res-type>
      <res-auth>Container</res-auth>
  </resource-ref>

通过上面配置基本就可以了。在工程下写个测试文件test.jsp

Html代码
1. <%@ page language="java" contentType="text/html; charset=UTF-8" 
2.    pageEncoding="UTF-8"%> 
3.<%@page import="java.sql.*"%> 
4.<%@page import="javax.naming.*"%> 
5.<%@page import="javax.sql.DataSource"%> 
6.<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
7.<html> 
8.<head> 
9.<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
10.<title>JNDI</title> 
11.</head> 
12.<body> 
13.<br> 
14.JNDI start  
15.<br> 
16.<%  
17.    try  
18.    {  
19.        Context ctx = new InitialContext();   
20.        //Context envContext = (Context) ctx.lookup("java:/comp/env");  
21.        //DataSource ds = (DataSource) envContext.lookup("jdbc/test"); //查找配置  
22.        //方法二:  
23.        DataSource ds = (DataSource) ctx.lookup("java:comp/env/jdbc/test");  
24.        Connection conn = ds.getConnection();  
25.        conn.close();  
26.        out.println("JNDI success");  
27.    } catch (NamingException e)  
28.    {  
29.        e.printStackTrace();  
30.    } catch (SQLException e)  
31.    {  
32.        e.printStackTrace();  
33.    }  
34.%> 
35.</body> 
36.</html> 
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@page import="java.sql.*"%>
<%@page import="javax.naming.*"%>
<%@page import="javax.sql.DataSource"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JNDI</title>
</head>
<body>
<br>
JNDI start
<br>
<%
try
{
Context ctx = new InitialContext();
//Context envContext = (Context) ctx.lookup("java:/comp/env");
//DataSource ds = (DataSource) envContext.lookup("jdbc/test"); //查找配置
//方法二:
DataSource ds = (DataSource) ctx.lookup("java:comp/env/jdbc/test");
Connection conn = ds.getConnection();
conn.close();
out.println("JNDI success");
} catch (NamingException e)
{
e.printStackTrace();
} catch (SQLException e)
{
e.printStackTrace();
}
%>
</body>
</html>

再次启动tomcat,输入:http://localhost:8080/test-jndi/test.jsp
页面出现:
JNDI start
JNDI success
ok,大功告成。

你可能感兴趣的:(java,sql,tomcat,mysql,jdbc)