<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    BloveSaga

    在希臘帕爾納斯山南坡上,有一個馳名世界的戴爾波伊神托所,在它的入口處的巨石上赫然銹刻著這樣幾個大字: 認識你自己!

      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      34 隨筆 :: 12 文章 :: 122 評論 :: 0 Trackbacks
    Tomcat下JNDI的配置

    ??? JNDI全名為Java Naming and Directory Interface.JNDI主要提供應用程序所需要資源上命名與目錄服務.在Java EE環境中,JNDI扮演了一個很重要的角色,
    它提供了一個接口讓用戶在不知道資源所在位置的情形下,取得該資源服務.
    ??? 就好比網絡磁盤驅動器的功能一樣。如果有人事先將另一臺機器上的磁盤驅動器接到用戶的機器上,用戶在使用的時候根本就分辨不出現在的驅動器是存在本端,
    還是在另一端的機器上,用戶只需取得資源來用,根本就不知道資源在什么地方。
    ??? JNDI這個接口基本上是LDAP,LDAP全名為Lightweight Directory Access Protocol.
    ?? ?
    ??? 要設定JNDI的JDBC數據源和DBCP連接池需要做以下的工作:(for example Oracle DataBase)

    ??? 一. 安裝JDBC Driver
    ??? 將你DB的JDBC Driver部署到{Tomcat_Install]\common\lib目錄下。
    ??? 二. 設定Tomcat下的server.xml
    ??? 修改{Tomcat_Install|\conf\server.xml文件中你的站臺標簽里的<Host></Host>之間的內容.如下:
    ??? server.xml
    ???? <Host>
    ??????? <Context path="/Develop" docBase="Develop" debug="0" reloadable="true"?????????????? crossContext="true">
    ??????? <Resource name="jdbc/dy" auth="Container" type="javax.sql.DataSource"/>
    ??????????? <ResourceParams name="jdbc/dy">
    ?????????????? <parameter>
    ????????????????? <name>factory</name>
    ????????????????? <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
    ?????????????? </parameter>
    ?????????????? <parameter>
    ????????????????? <name>driverClassName</name>
    ????????????????? <value>oracle.jdbc.driver.OracleDriver</value>
    ?????????????? </parameter>
    ?????????????? <parameter>
    ????????????????? <name>url</name>
    ????????????????? <value>jdbc:oracle:thin:@yang:1521:orcl</value>
    ?????????????? </parameter>????????????? ?
    ?????????????? <parameter>
    ????????????????? <name>username</name>
    ????????????????? <value>scott</value>
    ?????????????? </parameter>
    ?????????????? <parameter>
    ????????????????? <name>password</name>
    ????????????????? <value>ss</value>
    ?????????????? </parameter>
    ?????????????? <parameter>
    ????????????????? <name>maxActive</name>
    ????????????????? <value>20</value>
    ?????????????? </parameter>
    ?????????????? <parameter>
    ????????????????? <name>maxIdle</name>
    ????????????????? <value>10</value>
    ?????????????? </parameter>
    ?????????????? <parameter>
    ????????????????? <name>maxWait</name>
    ????????????????? <value>-1</value>
    ?????????????? </parameter>? ????????????????????????????????????????????????????????????? ?
    ??????????? </ResourceParams>
    ??????? </Context>
    ????? </Host>
    ? 上述社定所表示的意思是在Develop站臺中,定義一個JDBC數據來源,名稱為jdbc/dy.
    ? 通過以下的代碼來設置的這個jdbc/dy的數據來源和DBCP連接池:
    ? <parameter>
    ???? <name>factory</name>
    ???? <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
    ? </parameter>
    ? 設定使用DBCP連接池,這是有Jakarta Project組織所制定的連接池程序,它一樣是OpenSource的.
    參數說明:
    ???? <Context></Context>用于設置你的站臺.
    ???? <Context>標簽中的path="/Develop"代表網站名稱,即: http://IP_DomaninName/Develop; docBase="Develop"代表站臺的目錄位置,debug則是設定debug level
    ???? ,0表示提供最少的信息,9表示提供最都多的信息;reloadable則表示Tomcat執行時,當class,web.xml被更新時,都會自動重新加載,不需要重新啟動Tomcat;
    ???? maxActive表示連接池的最大數據庫連接數;設為0表示無限制;maxIdle表示設定連接池中最小能有幾個Connection,若為0表示不限制;maxWait 最大建立連接等待時間。
    ??? 如果超過此時間將接到異常,設為-1表示無限制,單位為ms;driverClassName JDBC驅動程序;url表示數據庫連接字符串.

    ?三. 設定應用站臺中的web.xml
    ?eg:設定Develop的web.xml如下:
    ? <resource-ref>
    ???? <description>JNDI JDBC DataSource of Develop</description>?? //一個描述
    ???? <res-ref-name>jdbc/dy</res-ref-name>??????????????????????? //這里必須為你之前指定的<ResourceParams name="jdbc/dy">
    ???? <res-type>javax.sql.DataSource</res-type>
    ???? <res-auth>Container</res-auth>
    ? </resource-ref>

    ?四. 使用JDBC數據來源獲得Connection對象
    ?? Context initContext=new InitialContext();
    ?? Context envContext=(Context)initContext.lookup("java:/comp/env");
    ?? 或者
    ?? Context envContext=(Context)initContext.lookup("java:comp/env");
    ?? DataSourceds conn=(DataSource)envContext.lookup("jdbc/dy");
    ?? conn=ds.getConnection();

    按照這四個步驟做下來后,那么你就可以寫個Test Page來測試一下了.
    Test Page1:
    _________________________________________________________________________________________________________
    testpool.jsp
    <!--測試JNID數據源的配置-->
    <%@ page contentType="text/html;charset=gb2312"%>
    <%@ page import="javax.naming.Context"%>
    <%@ page import="javax.sql.DataSource"%>
    <%@ page import="javax.naming.InitialContext"%>
    <%@ page import="java.sql.*"%>
    <%
    ? DataSource ds=null;
    ? try
    ? {
    ????? Context initCtx=new InitialContext();
    ????? Context envCtx=(Context)initCtx.lookup("java:comp/env");
    ????? //從Context中loopup 數據源
    ????? ds=(DataSource)envCtx.lookup("jdbc/dy");
    ????? if(ds!=null)
    ????? {
    ??????? out.println("已經獲得DataSource!");
    ??????? out.println("<br>");
    ??????? Connection conn=ds.getConnection();
    ??????? Statement stmt=conn.createStatement();
    ??????? ResultSet rst=stmt.executeQuery("select * from emp");
    ??????? out.println("以下是從數據庫里讀出來的數據");
    ??????? out.println("<hr>");
    ??????? while(rst.next())
    ??????? {
    ????????? out.println("empName:"+rst.getString("ename"));
    ????????? out.println("<br>");
    ??????? }
    ????? }
    ??? else
    ?? ??? ?out.println("連接失敗");
    ? }
    ? catch(Exception e)
    ? {
    ????? out.println(e);
    ? }
    %>
    如果成功那么輸出結果:
    ========================================
    已經獲得DataSource!
    以下是從數據庫里讀出來的數據:
    empName:SMITH
    empName:ALLEN
    empName:WARD
    empName:JONES
    empName:MARTIN
    empName:BLAKE
    empName:CLARK
    empName:SCOTT
    empName:KING
    empName:TURNER
    empName:ADAMS
    empName:JAMES
    empName:FORD
    empName:MILLER
    empName:feiyang
    empName:yang
    empName:feifei
    empName:fei
    posted on 2006-06-04 15:29 藍色Saga 閱讀(191) 評論(0)  編輯  收藏 所屬分類: 實用技術

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 亚洲成a人无码亚洲成www牛牛 | 免费va在线观看| jzzjzz免费观看大片免费| 久久香蕉国产线看观看亚洲片| 一级女人18毛片免费| 亚洲熟妇成人精品一区| 中文字幕亚洲综合久久男男| 麻豆视频免费观看| 免费手机在线看片| 亚洲激情校园春色| 亚洲国产aⅴ综合网| 最近高清中文字幕免费| 高清免费久久午夜精品| 亚洲视频在线免费播放| www国产亚洲精品久久久日本| 亚洲欧洲免费视频| 羞羞视频在线免费观看| 91大神亚洲影视在线| 亚洲国产91精品无码专区| 在线视频免费观看高清| 黄色视频在线免费观看| 亚洲免费综合色在线视频| 亚洲AV美女一区二区三区| 又黄又爽的视频免费看| 久久九九兔免费精品6| 在线视频网址免费播放| 亚洲免费综合色在线视频| 精品日韩亚洲AV无码一区二区三区 | 亚洲一卡2卡3卡4卡5卡6卡| 久久91亚洲人成电影网站| 日本媚薬痉挛在线观看免费| 1000部拍拍拍18勿入免费视频下载 | 亚洲精品美女在线观看| 在线观看亚洲精品福利片| 日韩一区二区a片免费观看| 久久免费精品一区二区| 无码毛片一区二区三区视频免费播放 | 亚洲爆乳少妇无码激情| 亚洲综合激情视频| 亚洲国产精品高清久久久| 又大又硬又爽免费视频|