JNDI

新建web应用

配置JNDI

server.xm l

 <Context docBase="JNDITest" path="/JNDITest" reloadable="true" source="org.eclipse.jst.jee.server:JNDITest">
                             <!-- Configure the name and data type of a resource made available to the application (equivalent to the inclusion of a <resource-ref> element in the web application deployment descriptor).
                             configure Tomcat's resource factory
                            
                              <Resource name="jdbc/oa"
                                        auth="Container"
                                        type="javax.sql.DataSource"
                                        username="root"
                                        password="root"
                                        driverClassName="com.mysql.jdbc.Driver"
                                        url="jdbc:mysql://127.0.0.1:3306/oa"
                                        maxActive="8"
                                        maxIdle="4"/>
              -->
              
              
                <!-- Tomcat 6 includes a series of standard resource factories that can provide services to your web applications
                Of the standard resource factories, only the "JDBC Data Source" and "User Transaction" factories are mandated to be available on other platforms, and then they are required only if the platform implements the Java2 Enterprise Edition (J2EE) specs. All other standard resource factories, plus custom resource factories that you write yourself, are specific to Tomcat and cannot be assumed to be available on other containers.
                       
                        在server.xml中配置可以,由于server.xml在启动时加载,Tomcat6可配置在context.xml文件中,Tomcat
                        6会定时去查看该文件,判断时间撮,重新加载context.xml文件

                        <Resource name="bean/MyBeanFactory" auth="Container"
                                        type="com.morning.learn.j2ee.jndi.MyBean"
                                        factory="org.apache.naming.factory.BeanFactory"
                                        bar="23"/>
                 -->
      </Context>
     
      </Host>

 

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
  <display-name>JNDITest</display-name>
 
  <!-- 资源引用,通常是资源(如JDBC DataSource,JavaMail Session)的对象工厂,或者在Tomcat6中配置的定制对象工厂
          custom object factories configured into Tomcat 6
   -->

   <!-- a new variation of resource-ref added in Servlet 2.4 that is simpler to configure for resources that do not require authentication information -->
   <resource-env-ref>
      <description>Object factory for MyBean instances</description>
      <resource-env-ref-name>bean/MyBeanFactory</resource-env-ref-name>
      <resource-env-ref-type>com.morning.learn.j2ee.jndi.MyBean</resource-env-ref-type>
  </resource-env-ref>
 
  <resource-ref>
      <description>DB Connection</description>
      <res-ref-name>jdbc/oa</res-ref-name>
      <res-type>javax.sql.DataSource</res-type>
      <res-auth>Container</res-auth>
  </resource-ref>
 
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
</web-app>

 

context.xml

<?xml version="1.0" encoding="UTF-8"?>
<!--
  Licensed to the Apache Software Foundation (ASF) under one or more
  contributor license agreements.  See the NOTICE file distributed with
  this work for additional information regarding copyright ownership.
  The ASF licenses this file to You under the Apache License, Version 2.0
  (the "License"); you may not use this file except in compliance with
  the License.  You may obtain a copy of the License at

      http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
--><!-- The contents of this file will be loaded for each web application -->
<Context reloadable="true">

    <!-- Default set of monitored resources -->
    <WatchedResource>WEB-INF/web.xml</WatchedResource>
   
    <!-- Uncomment this to disable session persistence across Tomcat restarts -->
    <!--
    <Manager pathname="" />
    -->

    <!-- Uncomment this to enable Comet connection tacking (provides events
         on session expiration as well as webapp lifecycle) -->
    <!--
    <Valve className="org.apache.catalina.valves.CometConnectionManagerValve" />
    -->
   
    <!-- 全局资源定义 -->
    <Resource name="bean/MyBeanFactory" auth="Container"
                                    type="com.morning.learn.j2ee.jndi.MyBean"
                                    factory="org.apache.naming.factory.BeanFactory"
                                    bar="888"/>
                                   
     <Resource name="jdbc/oa"
                                        auth="Container"
                                        type="javax.sql.DataSource"
                                        username="root"
                                        password="root"
                                        driverClassName="com.mysql.jdbc.Driver"
                                        url="jdbc:mysql://127.0.0.1:3306/oa"
                                        maxActive="8"
                                        maxIdle="4"/>
</Context>

 

jndiTest.jsp

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<%@ page import="javax.naming.*" %>
<%@ page import="com.morning.learn.j2ee.jndi.*"%>
<%@ page import="javax.sql.*"%>

<!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">
<meta http-equiv="Cache-Control" content="no-store"/>
<meta http-equiv="Pragma" content="no-cache"/>
<meta http-equiv="Expires" content="0"/>
<title>Insert title here</title>
</head>
<body>
<%-- 编写需要使用JNDI资源的代码 --%>
<%
//通过JNDI默认的命名空间初始化JNDI上下文
Context initctx = new InitialContext();
Context envCtx = (Context) initctx.lookup("java:comp/env");

//通过JNDI服务查找JNDI树上的资源
DataSource ds= (DataSource) envCtx.lookup("jdbc/oa");
System.out.println(ds.getConnection());

MyBean bean= (MyBean) envCtx.lookup("bean/MyBeanFactory");
System.out.println(" bar: " + bean.getBar());

%>

ccadfs

</body>
</html>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值