Tomcat伺服器配置參考

來源:互聯網
上載者:User
Tomcat伺服器配置參考DefaultContext組件
Introduction

DefaultContext元素代表Context元素的配置設定的一個子集,可以嵌套在Engine或者Host元素中,表示自動建立的Context的預設配置屬性。

在什麼情況下,Catalina會自動建立Context?有關這方面的更多資訊,參考應用自動發布和使用者web應用。

屬性
公用屬性

所有DefaultContext的實現支援如下屬性:

屬性 描述
cookies

如果想利用cookies來傳遞session identifier(需要用戶端支援cookies),設為ture。否則為false,這種情況下只能依靠URL Rewriting傳遞session identifier。

crossContext

如果想在應用內調用ServletContext.getContext()來返回在該虛擬機器主機上啟動並執行其他web application的request dispatcher,設為true。在安全性很重要的環境中,設為false,使得getContext()總是返回null。預設值為false。

reloadable

如果希望Catalina監視/WEB-INF/classes/和/WEB-INF/lib下面的類是否發生變化,在發生變化的時候自動重載web application,設為true。這個特徵在開發階段很有用,但也大大增加了伺服器的開銷。因此,在發布以後,不推薦使用。但是,你可以使用Manager應用在必要的時候觸發應用的重載。

wrapperClass

org.apache.catalina.Wrapper實作類別的名稱,用於該Context管理的servlets。如果沒有指定,使用標準的預設值。

標準實現

DefaultContext的標準實現是org.apache.catalina.core.DefaultContext,它還支援如下的附加屬性:

屬性 描述
swallowOutput

如果該值為true,System.out和System.err的輸出被重新導向到web應用的logger。如果沒有指定,預設值為false

useNaming

如果希望Catalina為該web應用使能一個JNDI InitialContext對象,設為true。該InitialialContext符合J2EE平台的約定,預設值為true。

嵌套組件
專有特徵
Contxt參數(Context Parameters

可以在Context中元素中嵌套<Parameter>元素,配置帶有名稱的值,這些值作為servletcontext初始化參數,對整個web應用可見。比如,你可以像這樣建立初始化參數:

<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>

區別是,前者不需要修改deployment descriptor來定製這個值。

<Parameter>元素的有效屬性值如下:

屬性 描述
description

關於該context初始化參數的文字描述(可選)

name

要建立的context初始化參數的名稱

override

如果不希望/WEB-INF/web.xml中具有相同參數名稱的<context-param>覆蓋這裡指定的值,設為false。預設值為true。

value

調用ServletContext.getInitParameter()時,返回給應用的參數值。

環境條目

可以在Context中嵌套<Environment>元素,配置命名的值,這些值作為環境條目資源(Environment Entry Resource),對整個web應用可見。比如,可以按照如下方法建立一個環境條目:

<DefaultContext ...>
...
<Environment name="maxExemptions" value="10"
type="java.lang.Integer" override="false"/>
...
</DefaultContext>

這與在/WEB-INF/web.xml中包含如下元素是等價的:

<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 區別是,前者不需要修改deployment descriptor來定製這個值。

<Environment>元素的有效屬性所如下:

屬性 描述
description

環境條目的文字描述(可選)

name

環境條目的名稱,相對於java:comp/env context。

override

如果不希望/WEB-INF/web.xml中具有相同名稱的<env-entry>覆蓋這裡指定的值,設為false。預設值為true。

type

環境條目的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

通過JNDI context請求時,返回給應用的參數值。這個值必須轉換成type屬性定義的Java類型

生命期Listeners(Lifecycle Listeners

如 果一個Java對象需要知道Context什麼時候啟動,什麼時候停止,可以在這個對象中嵌套一個Listener元素。該Listener元素必須實現 了org.apache.catalina.LifecycleListener介面,在發生對應的生命期事件的時候,通知該Listener。可以按照 如下的格式配置這樣的Listener:

<DefaultContext  ...>
...
<Listener className="com.mycompany.mypackage.MyListener" ... >
...
</DefaultContext>

注意,一個listener可以具有任意多的附加屬性。屬性名稱與JavaBean的屬性名稱相對應,使用標準的屬性命名方法。

資源定義(Resource Definitions

可 以在/WEB-INF/web.xml中定義資源的特性。使用JNDI尋找<resource-ref>和<resource-env -ref>元素時,這些特性被返回。對同一資源名稱,還必須定義資源參數(見下面“資源參數”小節),這些參數用來設定物件工廠(object factory)以及對象工廠的屬性。

比如,你可以按照如下方式建立資源定義:

<DefaultContext ...>
...
<Resource name="jdbc/EmployeeDB" auth="Container"
type="javax.sql.DataSource"
description="Employees Database for HR Applications"/>
...
</DefaultContext>

這等價於在/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>

區別是,前者不需要修改deployment descriptor來定製這個值。

<Resource>元素的有效屬性如下:

屬性 描述
auth

指 定是web應用代碼本身sign on到對應的resource mananger,還是由container代表web應用sign on到resource manager。該屬性的值必須是Application或者Container。如果在web application deployment descriptor中使用<resource-ref>,這個屬性是必需的,如果使用<resource-env-ref>, 這個屬性是可選的。

description

資源的文字描述(可選)

name

資源的名稱,相對於java:comp/env context

scope

指定通過這個resource manager得到的串連是否共用。該屬性的值必須是Shareable或者Unshareable。預設情況下,假定串連是共用的。

type

當web應用尋找該資源的時候,返回的Java類名的全稱。

資源參數(Resource Parameters

資 源參數用來配置資源管理員(resource manager,或對象工廠,object factory)。在做JNDI尋找時,資源管理員返回尋找的對象。在資源可以被訪問之前,對<Context>或< DefaultContext>元素的每個<Resource>元素,或者/WEB-INF/web.xml中定義的每個< resource-ref>或<resource-env-ref>元素,都必須定義資源參數。

資 源參數是用名稱定義的,使用的資源管理員(或者object factory)不同,參數名稱的集合也不一樣。這些參數名和工廠類的JavaBeans屬性相對應。JNDI實現通過調用對應的JavaBeans屬性 設定函數來配置特定的工廠類,然後通過lookup()調用使得該執行個體可見。

一個JDBC資料來源的資源參數可以按照如下方式定義:

<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>

如果你需要為某個特定的資源類型指定工廠內的Java類名,在<ResourceParams>元素中嵌套一個叫做factory的<parameter>條目。

<Resourceparams>元素的有效屬性如下:

屬性 描述
name

配 置的資源名稱,相對於java:comp/env context。這個名稱必須與$CATALINA_HOME/conf/server.xml中某個<Resource>元素定義的資源名 稱匹配,或者在/WEB-INF/web.xml中通過<resource-ref>或者<resource-env-ref> 元素應用。

資源串連(Resource Links

資源串連用於建立到全域JNDI資源的串連。在串連名稱上進行JNDI查詢會返回被串連的global 資源。
比如,你可以按照如下方法建立一個資源串連:

<DefaultContext ...>
...
<ResourceLink name="linkToGlobalResource"
global="simpleValue"
type="java.lang.Integer"
...
</DefaultContext>

<ResourceLink>元素的有效屬性如下:

屬性 描述
global

被串連的串連全域資源的名稱

name

建立的資源串連的名稱,相對於java:comp/env context

type

當web應用在該資源串連上進行尋找時,返回的Java類名的全稱

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.