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才成功的