JNDI Java Naming and Directory Interface:Java提供的命名服务,也就是将资源绑定到目录的简称。
名字和目录服务由来已久,如DNS就是将域名和ip绑定
JNDI的两大功能;
1 将名字绑定到资源,
2 通过名字查找资源;
例子;
jsp<%@ page contentType="text/html;charset=gb2312"%> <%@ page import="java.sql.*" import ="javax.sql.*" import ="javax.naming.*" %> <html> <body> <% try { String JNDI_STR = "java:/comp/env/jdbc/FirstJNDI"; Context ctx= new InitialContext(); Context envContext =(Context) ctx.lookup("java:/comp/env"); DataSource ds = (DataSource)envContext.lookup("jdbc/FirstJNDI"); Connection conn = ds.getConnection(); Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); String sql="select * from emp"; ResultSet rs=stmt.executeQuery(sql); while(rs.next()) {%> <%=rs.getString(1)%> <%=rs.getString(2)%> <%out.print("<br>");%> <%}%> <%out.print("数据库操作成功,恭喜你");%> <%rs.close(); stmt.close(); conn.close(); } catch (Exception e) { e.printStackTrace(); } %> </body> </html>
/conf/server.xml 添加
<Context path="/TestJNDI" docBase="C:/Program Files/Apache Software Foundation/apache-tomcat-6.0.32/webapps/TestJNDI" debug="5" reloadable="true" crossContext="true" workDir=""> <Resource name="jdbc/FirstJNDI" auth="Container" type="javax.sql.DataSource" maxActive="100" maxIdle="30" maxWait="10000" username="scott" password="tiger" driverClassName="oracle.jdbc.driver.OracleDriver" url="jdbc:oracle:thin:@localhost:1521:ORCL"/> </Context>
PS: tomcat 5.5 我是没成功,把注册表关于tomcat的全删了以后安装tomcat 6才成功的