DefaultContext元素代表Context元素的配置設(shè)置的一個(gè)子集,可以嵌套在Engine或者Host元素中,表示自動(dòng)創(chuàng)建的Context的缺省配置屬性。 在什么情況下,Catalina會(huì)自動(dòng)創(chuàng)建Context?有關(guān)這方面的更多信息,參考應(yīng)用自動(dòng)發(fā)布和用戶web應(yīng)用。
DefaultContext元素代表Context元素的配置設(shè)置的一個(gè)子集,可以嵌套在Engine或者Host元素中,表示自動(dòng)創(chuàng)建的Context的缺省配置屬性。
在什么情況下,Catalina會(huì)自動(dòng)創(chuàng)建Context?有關(guān)這方面的更多信息,參考應(yīng)用自動(dòng)發(fā)布和用戶web應(yīng)用。
公共屬性 所有DefaultContext的實(shí)現(xiàn)支持如下屬性: 屬性 描述 cookies 如果想利用cookies來(lái)傳遞session identifier(需要客戶端支持cookies),設(shè)為ture。否則為false,這種情況下只能依靠URL Rewriting傳遞session identifier。 crossContext 如果想在應(yīng)用內(nèi)調(diào)用ServletContext.getContext()來(lái)返回在該虛擬主機(jī)上運(yùn)行的其他web application的request dispatcher,設(shè)為true。在安全性很重要的環(huán)境中,設(shè)為false,使得getContext()總是返回null。缺省值為false。 reloadable 如果希望Catalina監(jiān)視/WEB-INF/classes/和/WEB-INF/lib下面的類是否發(fā)生變化,在發(fā)生變化的時(shí)候自動(dòng)重載web application,設(shè)為true。這個(gè)特征在開發(fā)階段很有用,但也大大增加了服務(wù)器的開銷。因此,在發(fā)布以后,不推薦使用。但是,你可以使用Manager應(yīng)用在必要的時(shí)候觸發(fā)應(yīng)用的重載。 wrapperClass org.apache.catalina.Wrapper實(shí)現(xiàn)類的名稱,用于該Context管理的servlets。如果沒(méi)有指定,使用標(biāo)準(zhǔn)的缺省值。 標(biāo)準(zhǔn)實(shí)現(xiàn) DefaultContext的標(biāo)準(zhǔn)實(shí)現(xiàn)是org.apache.catalina.core.DefaultContext,它還支持如下的附加屬性: 屬性 描述 swallowOutput 如果該值為true,System.out和System.err的輸出被重定向到web應(yīng)用的logger。如果沒(méi)有指定,缺省值為false useNaming 如果希望Catalina為該web應(yīng)用使能一個(gè)JNDI InitialContext對(duì)象,設(shè)為true。該InitialialContext符合J2EE平臺(tái)的約定,缺省值為true。
所有DefaultContext的實(shí)現(xiàn)支持如下屬性: 屬性 描述 cookies 如果想利用cookies來(lái)傳遞session identifier(需要客戶端支持cookies),設(shè)為ture。否則為false,這種情況下只能依靠URL Rewriting傳遞session identifier。 crossContext 如果想在應(yīng)用內(nèi)調(diào)用ServletContext.getContext()來(lái)返回在該虛擬主機(jī)上運(yùn)行的其他web application的request dispatcher,設(shè)為true。在安全性很重要的環(huán)境中,設(shè)為false,使得getContext()總是返回null。缺省值為false。 reloadable 如果希望Catalina監(jiān)視/WEB-INF/classes/和/WEB-INF/lib下面的類是否發(fā)生變化,在發(fā)生變化的時(shí)候自動(dòng)重載web application,設(shè)為true。這個(gè)特征在開發(fā)階段很有用,但也大大增加了服務(wù)器的開銷。因此,在發(fā)布以后,不推薦使用。但是,你可以使用Manager應(yīng)用在必要的時(shí)候觸發(fā)應(yīng)用的重載。 wrapperClass org.apache.catalina.Wrapper實(shí)現(xiàn)類的名稱,用于該Context管理的servlets。如果沒(méi)有指定,使用標(biāo)準(zhǔn)的缺省值。
所有DefaultContext的實(shí)現(xiàn)支持如下屬性:
cookies
如果想利用cookies來(lái)傳遞session identifier(需要客戶端支持cookies),設(shè)為ture。否則為false,這種情況下只能依靠URL Rewriting傳遞session identifier。
crossContext
如果想在應(yīng)用內(nèi)調(diào)用ServletContext.getContext()來(lái)返回在該虛擬主機(jī)上運(yùn)行的其他web application的request dispatcher,設(shè)為true。在安全性很重要的環(huán)境中,設(shè)為false,使得getContext()總是返回null。缺省值為false。
reloadable
如果希望Catalina監(jiān)視/WEB-INF/classes/和/WEB-INF/lib下面的類是否發(fā)生變化,在發(fā)生變化的時(shí)候自動(dòng)重載web application,設(shè)為true。這個(gè)特征在開發(fā)階段很有用,但也大大增加了服務(wù)器的開銷。因此,在發(fā)布以后,不推薦使用。但是,你可以使用Manager應(yīng)用在必要的時(shí)候觸發(fā)應(yīng)用的重載。
wrapperClass
org.apache.catalina.Wrapper實(shí)現(xiàn)類的名稱,用于該Context管理的servlets。如果沒(méi)有指定,使用標(biāo)準(zhǔn)的缺省值。
DefaultContext的標(biāo)準(zhǔn)實(shí)現(xiàn)是org.apache.catalina.core.DefaultContext,它還支持如下的附加屬性: 屬性 描述 swallowOutput 如果該值為true,System.out和System.err的輸出被重定向到web應(yīng)用的logger。如果沒(méi)有指定,缺省值為false useNaming 如果希望Catalina為該web應(yīng)用使能一個(gè)JNDI InitialContext對(duì)象,設(shè)為true。該InitialialContext符合J2EE平臺(tái)的約定,缺省值為true。
DefaultContext的標(biāo)準(zhǔn)實(shí)現(xiàn)是org.apache.catalina.core.DefaultContext,它還支持如下的附加屬性:
swallowOutput
如果該值為true,System.out和System.err的輸出被重定向到web應(yīng)用的logger。如果沒(méi)有指定,缺省值為false
useNaming
如果希望Catalina為該web應(yīng)用使能一個(gè)JNDI InitialContext對(duì)象,設(shè)為true。該InitialialContext符合J2EE平臺(tái)的約定,缺省值為true。
Contxt參數(shù)(Context Parameters) 可以在Context中元素中嵌套<Parameter>元素,配置帶有名稱的值,這些值作為servletcontext初始化參數(shù),對(duì)整個(gè)web應(yīng)用可見(jiàn)。比如,你可以像這樣創(chuàng)建初始化參數(shù): <DefaultContext ...> ... <Parameter name="companyName" value="My Company, Incorporated" override="false"/> ... </DefaultContext> 這與在/WEB-INF/web.xml中包含如下元素相等: <context-param> <param-name>companyName</param-name> <param-value>My Company, Incorporated</param-value> </context-param> 區(qū)別是,前者不需要修改deployment descriptor來(lái)定制這個(gè)值。 <Parameter>元素的有效屬性值如下: 屬性 描述 description 關(guān)于該context初始化參數(shù)的文字描述(可選) name 要?jiǎng)?chuàng)建的context初始化參數(shù)的名稱 override 如果不希望/WEB-INF/web.xml中具有相同參數(shù)名稱的<context-param>覆蓋這里指定的值,設(shè)為false。缺省值為true。 value 調(diào)用ServletContext.getInitParameter()時(shí),返回給應(yīng)用的參數(shù)值。 環(huán)境條目 可以在Context中嵌套<Environment>元素,配置命名的值,這些值作為環(huán)境條目資源(Environment Entry Resource),對(duì)整個(gè)web應(yīng)用可見(jiàn)。比如,可以按照如下方法創(chuàng)建一個(gè)環(huán)境條目: <DefaultContext ...> ... <Environment name="maxExemptions" value="10" type="java.lang.Integer" override="false"/> ... </DefaultContext> 這與在/WEB-INF/web.xml中包含如下元素是等價(jià)的: <env-entry> <env-entry-name>maxExemptions</param-name> <env-entry-value>10</env-entry-value> <env-entry-type>java.lang.Integer</env-entry-type> </env-entry> but does not require modification of the deployment descriptor to customize 區(qū)別是,前者不需要修改deployment descriptor來(lái)定制這個(gè)值。 <Environment>元素的有效屬性所如下: 屬性 描述 description 環(huán)境條目的文字描述(可選) name 環(huán)境條目的名稱,相對(duì)于java:comp/env context。 override 如果不希望/WEB-INF/web.xml中具有相同名稱的<env-entry>覆蓋這里指定的值,設(shè)為false。缺省值為true。 type 環(huán)境條目的Java類名的全稱.在/WEB-INF/web.xml中,<env-entry-type>必須是如下的值:java.lang.Boolean, java.lang.Byte, java.lang.Character, java.lang.Double, java.lang.Float, java.lang.Integer, java.lang.Long, java.lang.Short, or java.lang.String. value 通過(guò)JNDI context請(qǐng)求時(shí),返回給應(yīng)用的參數(shù)值。這個(gè)值必須轉(zhuǎn)換成type屬性定義的Java類型 生命期Listeners(Lifecycle Listeners) 如果一個(gè)Java對(duì)象需要知道Context什么時(shí)候啟動(dòng),什么時(shí)候停止,可以在這個(gè)對(duì)象中嵌套一個(gè)Listener元素。該Listener元素必須實(shí)現(xiàn)了org.apache.catalina.LifecycleListener接口,在發(fā)生對(duì)應(yīng)的生命期事件的時(shí)候,通知該Listener。可以按照如下的格式配置這樣的Listener: <DefaultContext ...> ... <Listener className="com.mycompany.mypackage.MyListener" ... > ... </DefaultContext> 注意,一個(gè)listener可以具有任意多的附加屬性。屬性名與JavaBean的屬性名相對(duì)應(yīng),使用標(biāo)準(zhǔn)的屬性命名方法。 資源定義(Resource Definitions) 可以在/WEB-INF/web.xml中定義資源的特性。使用JNDI查找<resource-ref>和<resource-env-ref>元素時(shí),這些特性被返回。對(duì)同一資源名稱,還必須定義資源參數(shù)(見(jiàn)下面“資源參數(shù)”小節(jié)),這些參數(shù)用來(lái)配置對(duì)象工廠(object factory)以及對(duì)象工廠的屬性。 比如,你可以按照如下方式創(chuàng)建資源定義: <DefaultContext ...> ... <Resource name="jdbc/EmployeeDB" auth="Container" type="javax.sql.DataSource" description="Employees Database for HR Applications"/> ... </DefaultContext> 這等價(jià)于在/WEB-INF/web.xml中包含如下元素: <resource-ref> <description>Employees Database for HR Applications</description> <res-ref-name>jdbc/EmployeeDB</res-ref-name> <res-ref-type>javax.sql.DataSource</res-ref-type> <res-auth>Container</res-auth> </resource-ref> 區(qū)別是,前者不需要修改deployment descriptor來(lái)定制這個(gè)值。 <Resource>元素的有效屬性如下: 屬性 描述 auth 指定是web應(yīng)用代碼本身sign on到對(duì)應(yīng)的resource mananger,還是由container代表web應(yīng)用sign on到resource manager。該屬性的值必須是Application或者Container。如果在web application deployment descriptor中使用<resource-ref>,這個(gè)屬性是必需的,如果使用<resource-env-ref>,這個(gè)屬性是可選的。 description 資源的文字描述(可選) name 資源的名稱,相對(duì)于java:comp/env context scope 指定通過(guò)這個(gè)resource manager得到的連接是否共享。該屬性的值必須是Shareable或者Unshareable。缺省情況下,假定連接是共享的。 type 當(dāng)web應(yīng)用查找該資源的時(shí)候,返回的Java類名的全稱。 資源參數(shù)(Resource Parameters) 資源參數(shù)用來(lái)配置資源管理器(resource manager,或?qū)ο蠊S,object factory)。在做JNDI查找時(shí),資源管理器返回查找的對(duì)象。在資源可以被訪問(wèn)之前,對(duì)<Context>或<DefaultContext>元素的每個(gè)<Resource>元素,或者/WEB-INF/web.xml中定義的每個(gè)<resource-ref>或<resource-env-ref>元素,都必須定義資源參數(shù)。 資源參數(shù)是用名稱定義的,使用的資源管理器(或者object factory)不同,參數(shù)名稱的集合也不一樣。這些參數(shù)名和工廠類的JavaBeans屬性相對(duì)應(yīng)。JNDI實(shí)現(xiàn)通過(guò)調(diào)用對(duì)應(yīng)的JavaBeans屬性設(shè)置函數(shù)來(lái)配置特定的工廠類,然后通過(guò)lookup()調(diào)用使得該實(shí)例可見(jiàn)。 一個(gè)JDBC數(shù)據(jù)源的資源參數(shù)可以按照如下方式定義: <DefaultContext ...> ... <ResourceParams name="jdbc/EmployeeDB"> <parameter> <name>driverClassName</name> <value>org.hsql.jdbcDriver</value> </parameter> <parameter> <name>driverName</name> </value>jdbc:HypersonicSQL:database</value> </parameter> <parameter> <name>user</name> <value>dbusername</value> </parameter> <parameter> <name>password</name> <value>dbpassword</value> </parameter> </ResourceParams> ... </DefaultContext> 如果你需要為某個(gè)特定的資源類型指定工廠內(nèi)的Java類名,在<ResourceParams>元素中嵌套一個(gè)叫做factory的<parameter>條目。 <Resourceparams>元素的有效屬性如下: 屬性 描述 name 配置的資源名稱,相對(duì)于java:comp/env context。這個(gè)名稱必須與$CATALINA_HOME/conf/server.xml中某個(gè)<Resource>元素定義的資源名稱匹配,或者在/WEB-INF/web.xml中通過(guò)<resource-ref>或者<resource-env-ref>元素應(yīng)用。 資源連接(Resource Links) 資源連接用于創(chuàng)建到全局JNDI資源的連接。在連接名稱上進(jìn)行JNDI查詢會(huì)返回被連接的global 資源。 比如,你可以按照如下方法創(chuàng)建一個(gè)資源連接: <DefaultContext ...> ... <ResourceLink name="linkToGlobalResource" global="simpleValue" type="java.lang.Integer" ... </DefaultContext> <ResourceLink>元素的有效屬性如下: 屬性 描述 global 被連接的連接全局資源的名稱 name 創(chuàng)建的資源連接的名稱,相對(duì)于java:comp/env context type 當(dāng)web應(yīng)用在該資源連接上進(jìn)行查找時(shí),返回的Java類名的全稱
可以在Context中元素中嵌套<Parameter>元素,配置帶有名稱的值,這些值作為servletcontext初始化參數(shù),對(duì)整個(gè)web應(yīng)用可見(jiàn)。比如,你可以像這樣創(chuàng)建初始化參數(shù): <DefaultContext ...> ... <Parameter name="companyName" value="My Company, Incorporated" override="false"/> ... </DefaultContext> 這與在/WEB-INF/web.xml中包含如下元素相等: <context-param> <param-name>companyName</param-name> <param-value>My Company, Incorporated</param-value> </context-param> 區(qū)別是,前者不需要修改deployment descriptor來(lái)定制這個(gè)值。 <Parameter>元素的有效屬性值如下: 屬性 描述 description 關(guān)于該context初始化參數(shù)的文字描述(可選) name 要?jiǎng)?chuàng)建的context初始化參數(shù)的名稱 override 如果不希望/WEB-INF/web.xml中具有相同參數(shù)名稱的<context-param>覆蓋這里指定的值,設(shè)為false。缺省值為true。 value 調(diào)用ServletContext.getInitParameter()時(shí),返回給應(yīng)用的參數(shù)值。
可以在Context中元素中嵌套<Parameter>元素,配置帶有名稱的值,這些值作為servletcontext初始化參數(shù),對(duì)整個(gè)web應(yīng)用可見(jiàn)。比如,你可以像這樣創(chuàng)建初始化參數(shù):
<DefaultContext ...> ... <Parameter name="companyName" value="My Company, Incorporated" override="false"/> ... </DefaultContext>
<context-param> <param-name>companyName</param-name> <param-value>My Company, Incorporated</param-value> </context-param>
<Parameter>元素的有效屬性值如下:
description
關(guān)于該context初始化參數(shù)的文字描述(可選)
name
要?jiǎng)?chuàng)建的context初始化參數(shù)的名稱
override
如果不希望/WEB-INF/web.xml中具有相同參數(shù)名稱的<context-param>覆蓋這里指定的值,設(shè)為false。缺省值為true。
value
調(diào)用ServletContext.getInitParameter()時(shí),返回給應(yīng)用的參數(shù)值。
可以在Context中嵌套<Environment>元素,配置命名的值,這些值作為環(huán)境條目資源(Environment Entry Resource),對(duì)整個(gè)web應(yīng)用可見(jiàn)。比如,可以按照如下方法創(chuàng)建一個(gè)環(huán)境條目: <DefaultContext ...> ... <Environment name="maxExemptions" value="10" type="java.lang.Integer" override="false"/> ... </DefaultContext> 這與在/WEB-INF/web.xml中包含如下元素是等價(jià)的: <env-entry> <env-entry-name>maxExemptions</param-name> <env-entry-value>10</env-entry-value> <env-entry-type>java.lang.Integer</env-entry-type> </env-entry> but does not require modification of the deployment descriptor to customize 區(qū)別是,前者不需要修改deployment descriptor來(lái)定制這個(gè)值。 <Environment>元素的有效屬性所如下: 屬性 描述 description 環(huán)境條目的文字描述(可選) name 環(huán)境條目的名稱,相對(duì)于java:comp/env context。 override 如果不希望/WEB-INF/web.xml中具有相同名稱的<env-entry>覆蓋這里指定的值,設(shè)為false。缺省值為true。 type 環(huán)境條目的Java類名的全稱.在/WEB-INF/web.xml中,<env-entry-type>必須是如下的值:java.lang.Boolean, java.lang.Byte, java.lang.Character, java.lang.Double, java.lang.Float, java.lang.Integer, java.lang.Long, java.lang.Short, or java.lang.String. value 通過(guò)JNDI context請(qǐng)求時(shí),返回給應(yīng)用的參數(shù)值。這個(gè)值必須轉(zhuǎn)換成type屬性定義的Java類型
可以在Context中嵌套<Environment>元素,配置命名的值,這些值作為環(huán)境條目資源(Environment Entry Resource),對(duì)整個(gè)web應(yīng)用可見(jiàn)。比如,可以按照如下方法創(chuàng)建一個(gè)環(huán)境條目:
<DefaultContext ...> ... <Environment name="maxExemptions" value="10" type="java.lang.Integer" override="false"/> ... </DefaultContext>
<env-entry> <env-entry-name>maxExemptions</param-name> <env-entry-value>10</env-entry-value> <env-entry-type>java.lang.Integer</env-entry-type> </env-entry>
but does not require modification of the deployment descriptor to customize 區(qū)別是,前者不需要修改deployment descriptor來(lái)定制這個(gè)值。
<Environment>元素的有效屬性所如下:
環(huán)境條目的文字描述(可選)
環(huán)境條目的名稱,相對(duì)于java:comp/env context。
如果不希望/WEB-INF/web.xml中具有相同名稱的<env-entry>覆蓋這里指定的值,設(shè)為false。缺省值為true。
type
環(huán)境條目的Java類名的全稱.在/WEB-INF/web.xml中,<env-entry-type>必須是如下的值:java.lang.Boolean, java.lang.Byte, java.lang.Character, java.lang.Double, java.lang.Float, java.lang.Integer, java.lang.Long, java.lang.Short, or java.lang.String.
通過(guò)JNDI context請(qǐng)求時(shí),返回給應(yīng)用的參數(shù)值。這個(gè)值必須轉(zhuǎn)換成type屬性定義的Java類型
如果一個(gè)Java對(duì)象需要知道Context什么時(shí)候啟動(dòng),什么時(shí)候停止,可以在這個(gè)對(duì)象中嵌套一個(gè)Listener元素。該Listener元素必須實(shí)現(xiàn)了org.apache.catalina.LifecycleListener接口,在發(fā)生對(duì)應(yīng)的生命期事件的時(shí)候,通知該Listener。可以按照如下的格式配置這樣的Listener: <DefaultContext ...> ... <Listener className="com.mycompany.mypackage.MyListener" ... > ... </DefaultContext> 注意,一個(gè)listener可以具有任意多的附加屬性。屬性名與JavaBean的屬性名相對(duì)應(yīng),使用標(biāo)準(zhǔn)的屬性命名方法。
如果一個(gè)Java對(duì)象需要知道Context什么時(shí)候啟動(dòng),什么時(shí)候停止,可以在這個(gè)對(duì)象中嵌套一個(gè)Listener元素。該Listener元素必須實(shí)現(xiàn)了org.apache.catalina.LifecycleListener接口,在發(fā)生對(duì)應(yīng)的生命期事件的時(shí)候,通知該Listener。可以按照如下的格式配置這樣的Listener:
<DefaultContext ...> ... <Listener className="com.mycompany.mypackage.MyListener" ... > ... </DefaultContext>
注意,一個(gè)listener可以具有任意多的附加屬性。屬性名與JavaBean的屬性名相對(duì)應(yīng),使用標(biāo)準(zhǔn)的屬性命名方法。
可以在/WEB-INF/web.xml中定義資源的特性。使用JNDI查找<resource-ref>和<resource-env-ref>元素時(shí),這些特性被返回。對(duì)同一資源名稱,還必須定義資源參數(shù)(見(jiàn)下面“資源參數(shù)”小節(jié)),這些參數(shù)用來(lái)配置對(duì)象工廠(object factory)以及對(duì)象工廠的屬性。 比如,你可以按照如下方式創(chuàng)建資源定義: <DefaultContext ...> ... <Resource name="jdbc/EmployeeDB" auth="Container" type="javax.sql.DataSource" description="Employees Database for HR Applications"/> ... </DefaultContext> 這等價(jià)于在/WEB-INF/web.xml中包含如下元素: <resource-ref> <description>Employees Database for HR Applications</description> <res-ref-name>jdbc/EmployeeDB</res-ref-name> <res-ref-type>javax.sql.DataSource</res-ref-type> <res-auth>Container</res-auth> </resource-ref> 區(qū)別是,前者不需要修改deployment descriptor來(lái)定制這個(gè)值。 <Resource>元素的有效屬性如下: 屬性 描述 auth 指定是web應(yīng)用代碼本身sign on到對(duì)應(yīng)的resource mananger,還是由container代表web應(yīng)用sign on到resource manager。該屬性的值必須是Application或者Container。如果在web application deployment descriptor中使用<resource-ref>,這個(gè)屬性是必需的,如果使用<resource-env-ref>,這個(gè)屬性是可選的。 description 資源的文字描述(可選) name 資源的名稱,相對(duì)于java:comp/env context scope 指定通過(guò)這個(gè)resource manager得到的連接是否共享。該屬性的值必須是Shareable或者Unshareable。缺省情況下,假定連接是共享的。 type 當(dāng)web應(yīng)用查找該資源的時(shí)候,返回的Java類名的全稱。
可以在/WEB-INF/web.xml中定義資源的特性。使用JNDI查找<resource-ref>和<resource-env-ref>元素時(shí),這些特性被返回。對(duì)同一資源名稱,還必須定義資源參數(shù)(見(jiàn)下面“資源參數(shù)”小節(jié)),這些參數(shù)用來(lái)配置對(duì)象工廠(object factory)以及對(duì)象工廠的屬性。
比如,你可以按照如下方式創(chuàng)建資源定義:
<DefaultContext ...> ... <Resource name="jdbc/EmployeeDB" auth="Container" type="javax.sql.DataSource" description="Employees Database for HR Applications"/> ... </DefaultContext>
<resource-ref> <description>Employees Database for HR Applications</description> <res-ref-name>jdbc/EmployeeDB</res-ref-name> <res-ref-type>javax.sql.DataSource</res-ref-type> <res-auth>Container</res-auth> </resource-ref>
<Resource>元素的有效屬性如下:
auth
指定是web應(yīng)用代碼本身sign on到對(duì)應(yīng)的resource mananger,還是由container代表web應(yīng)用sign on到resource manager。該屬性的值必須是Application或者Container。如果在web application deployment descriptor中使用<resource-ref>,這個(gè)屬性是必需的,如果使用<resource-env-ref>,這個(gè)屬性是可選的。
資源的文字描述(可選)
資源的名稱,相對(duì)于java:comp/env context
scope
指定通過(guò)這個(gè)resource manager得到的連接是否共享。該屬性的值必須是Shareable或者Unshareable。缺省情況下,假定連接是共享的。
當(dāng)web應(yīng)用查找該資源的時(shí)候,返回的Java類名的全稱。
資源參數(shù)用來(lái)配置資源管理器(resource manager,或?qū)ο蠊S,object factory)。在做JNDI查找時(shí),資源管理器返回查找的對(duì)象。在資源可以被訪問(wèn)之前,對(duì)<Context>或<DefaultContext>元素的每個(gè)<Resource>元素,或者/WEB-INF/web.xml中定義的每個(gè)<resource-ref>或<resource-env-ref>元素,都必須定義資源參數(shù)。 資源參數(shù)是用名稱定義的,使用的資源管理器(或者object factory)不同,參數(shù)名稱的集合也不一樣。這些參數(shù)名和工廠類的JavaBeans屬性相對(duì)應(yīng)。JNDI實(shí)現(xiàn)通過(guò)調(diào)用對(duì)應(yīng)的JavaBeans屬性設(shè)置函數(shù)來(lái)配置特定的工廠類,然后通過(guò)lookup()調(diào)用使得該實(shí)例可見(jiàn)。 一個(gè)JDBC數(shù)據(jù)源的資源參數(shù)可以按照如下方式定義: <DefaultContext ...> ... <ResourceParams name="jdbc/EmployeeDB"> <parameter> <name>driverClassName</name> <value>org.hsql.jdbcDriver</value> </parameter> <parameter> <name>driverName</name> </value>jdbc:HypersonicSQL:database</value> </parameter> <parameter> <name>user</name> <value>dbusername</value> </parameter> <parameter> <name>password</name> <value>dbpassword</value> </parameter> </ResourceParams> ... </DefaultContext> 如果你需要為某個(gè)特定的資源類型指定工廠內(nèi)的Java類名,在<ResourceParams>元素中嵌套一個(gè)叫做factory的<parameter>條目。 <Resourceparams>元素的有效屬性如下: 屬性 描述 name 配置的資源名稱,相對(duì)于java:comp/env context。這個(gè)名稱必須與$CATALINA_HOME/conf/server.xml中某個(gè)<Resource>元素定義的資源名稱匹配,或者在/WEB-INF/web.xml中通過(guò)<resource-ref>或者<resource-env-ref>元素應(yīng)用。
資源參數(shù)用來(lái)配置資源管理器(resource manager,或?qū)ο蠊S,object factory)。在做JNDI查找時(shí),資源管理器返回查找的對(duì)象。在資源可以被訪問(wèn)之前,對(duì)<Context>或<DefaultContext>元素的每個(gè)<Resource>元素,或者/WEB-INF/web.xml中定義的每個(gè)<resource-ref>或<resource-env-ref>元素,都必須定義資源參數(shù)。
資源參數(shù)是用名稱定義的,使用的資源管理器(或者object factory)不同,參數(shù)名稱的集合也不一樣。這些參數(shù)名和工廠類的JavaBeans屬性相對(duì)應(yīng)。JNDI實(shí)現(xiàn)通過(guò)調(diào)用對(duì)應(yīng)的JavaBeans屬性設(shè)置函數(shù)來(lái)配置特定的工廠類,然后通過(guò)lookup()調(diào)用使得該實(shí)例可見(jiàn)。
一個(gè)JDBC數(shù)據(jù)源的資源參數(shù)可以按照如下方式定義:
<DefaultContext ...> ... <ResourceParams name="jdbc/EmployeeDB"> <parameter> <name>driverClassName</name> <value>org.hsql.jdbcDriver</value> </parameter> <parameter> <name>driverName</name> </value>jdbc:HypersonicSQL:database</value> </parameter> <parameter> <name>user</name> <value>dbusername</value> </parameter> <parameter> <name>password</name> <value>dbpassword</value> </parameter> </ResourceParams> ... </DefaultContext>
<Resourceparams>元素的有效屬性如下:
配置的資源名稱,相對(duì)于java:comp/env context。這個(gè)名稱必須與$CATALINA_HOME/conf/server.xml中某個(gè)<Resource>元素定義的資源名稱匹配,或者在/WEB-INF/web.xml中通過(guò)<resource-ref>或者<resource-env-ref>元素應(yīng)用。
資源連接用于創(chuàng)建到全局JNDI資源的連接。在連接名稱上進(jìn)行JNDI查詢會(huì)返回被連接的global 資源。 比如,你可以按照如下方法創(chuàng)建一個(gè)資源連接: <DefaultContext ...> ... <ResourceLink name="linkToGlobalResource" global="simpleValue" type="java.lang.Integer" ... </DefaultContext> <ResourceLink>元素的有效屬性如下: 屬性 描述 global 被連接的連接全局資源的名稱 name 創(chuàng)建的資源連接的名稱,相對(duì)于java:comp/env context type 當(dāng)web應(yīng)用在該資源連接上進(jìn)行查找時(shí),返回的Java類名的全稱
資源連接用于創(chuàng)建到全局JNDI資源的連接。在連接名稱上進(jìn)行JNDI查詢會(huì)返回被連接的global 資源。 比如,你可以按照如下方法創(chuàng)建一個(gè)資源連接:
<DefaultContext ...> ... <ResourceLink name="linkToGlobalResource" global="simpleValue" type="java.lang.Integer" ... </DefaultContext>
<ResourceLink>元素的有效屬性如下:
global
被連接的連接全局資源的名稱
創(chuàng)建的資源連接的名稱,相對(duì)于java:comp/env context
當(dāng)web應(yīng)用在該資源連接上進(jìn)行查找時(shí),返回的Java類名的全稱