Web.XML配置詳解


  部署描述符實際上是一個XML文件,包含了很多描述servlet/JSP應用的各個方面的元素,如servlet注冊、servlet映射以及監聽器注冊。部署描述符從下面的XML頭開始:

<?xml version="1.0" encoding="ISO-8859-1"?>

  這個頭指定了XML的版本號以及所使用的編碼。頭的下面是DOCTYPE聲明:

<!DOCTYPE web-app
    PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
    "http://java.sun.com/dtd/web-app_2_3.dtd">

  這段代碼指定文件類型定義(DTD),可以通過它檢查XML文檔的有效性。下面顯示的<!DOCTYPE>元素有幾個特性,這些特性告訴我們關於DTD的信息:

  • web-app定義該文檔(部署描述符,不是DTD文件)的根元素
  •  PUBLIC意味着DTD文件可以被公開使用
  • "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"意味着DTDSun Microsystems, Inc.維護。該信息也表示它描述的文檔類型是DTD Web Application 2.3,而且DTD是用英文書寫的。
  •  URL"http://java.sun.com/dtd/web-app_2_3.dtd"表示DTD文件的位置。

  注意:在部署描述符中, <!--…-->用於注釋。部署描述符的根元素是web-appDTD文件規定,web-app元素的子元素的語法如下:

<!ELEMENT web-app (icon?, display-name?, description?,
    distributable?, context-param*, filter*, filter-mapping*,
    listener*, servlet*, servlet-mapping*, session-config?,
    mime-mapping*, welcome-file-list?,
    error-page*, taglib*, resource-env-ref*, resource-ref*,
    security-constraint*, login-config?, security-role*,env-entry*,
    ejb-ref*, ejb-local-ref*)>

  元素web-app含有23個子元素,而且子元素都是可選的。問號()表示子元素是可選的,而且只能出現一次。星號(*)表示子元素可在部署描述符中出現零次或多次。有些子元素還可以有它們自己的子元素。web.xml文件中web-app元素聲明的是下面每個子元素的聲明。下面的章節講述部署描述符中可能包含的所有子元素。

  注意:Servlet 2.3中,子元素必須按照DTD文件語法描述中指定的順序出現。比如,如果部署描述符中的web-app元素有servletservlet-mapping兩個子元素,則servlet子元素必須出現在servlet-mapping子元素之前。在Servlet 2.4中,順序並不重要。

1. icon元素

  icon元素用來指定GIF格式或JPEG格式的小圖標(16×16)或大圖標(32×32)的文件名。

<!ELEMENT icon (small-icon?, large-icon?)>
<!ELEMENT small-icon (#PCDATA)>
<!ELEMENT large-icon (#PCDATA)>

  icon元素包括兩個可選的子元素:small-icon子元素和large-icon子元素。文件名是Web應用歸檔文件(WAR)的根的相對路徑。部署描述符並沒有使用icon元素。但是,如果使用XML工具編輯部署描述符,XML編輯器可以使用icon元素。

2. display-name元素

  如果使用工具編輯部署描述符,display-name元素包含的就是XML編輯器顯示的名稱。

<!ELEMENT display-name (#PCDATA)>

  下面是一個含有display-name元素的部署描述符:

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
    <display-name>Online Store Application</display-name>
</web-app>

3. description元素

  可以使用description元素來提供有關部署描述符的信息。XML編輯器可以使用description元素的值。

<!ELEMENT description (#PCDATA)>

4. distributable元素

  可以使用distributable元素來告訴servlet/JSP容器,編寫將在分布式Web容器中部署的應用:

<!ELEMENT distributable EMPTY>

  例如,下面是一個含有distributable元素的部署描述符的例子:

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app
    PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
    "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
    <distributable/>
</web-app>

5. context-param元素

  context-param元素含有一對參數名和參數值,用作應用的servlet上下文初始化參數。參數名在整個Web應用中必須是惟一的。

<!ELEMENT context-param (param-name, param-value, description?)>
<!ELEMENT param-name (#PCDATA)>
<!ELEMENT param-value (#PCDATA)>
<!ELEMENT description (#PCDATA)>

  param-name 子元素包含有參數名,而param-value子元素包含的是參數值。作為選擇,可用description子元素來描述參數。下面是一個含有context-param元素的有效部署描述符:

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
    <context-param>
        <param-name>jdbcDriver</param-name>
        <param-value>com.mysql.jdbc.Driver</param-value>
    </context-param>
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>contextConfigLocationValue></param-value>
    </context-param>
</web-app

6. filter元素

  filter元素用於指定Web容器中的過濾器。在請求和響應對象被servlet處理之前或之后,可以使用過濾器對這兩個對象進行操作。利用filter-mapping元素,過濾器被映射到一個servlet或一個URL模式。這個過濾器的filter元素和filter-mapping 元素必須具有相同的名稱。

<!ELEMENT filter (icon?, filter-name, display-name?, description?,filter-class, init-param*)>
<!ELEMENT filter-name (#PCDATA)>
<!ELEMENT filter-class (#PCDATA)>

  icondisplay-namedescription元素的用法和上一節介紹的用法相同。init-param元素與context-param元素具有相同的元素描述符。filter-name元素用來定義過濾器的名稱,該名稱在整個應用中都必須是惟一的。filter-class元素指定過濾 器類的完全限定的名稱。下面是一個使用filter元素的部署描述符的例子:

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
    <filter>
        <filter-name>Encryption Filter</filter-name>
        <filter-class>com.branysoftware.EncryptionFilter</filter-class>
    </filter>
</web-app>

7. filter-mapping元素

  filter-mapping元素用來聲明Web應用中的過濾器映射。過濾器可被映射到一個servlet或一個URL模式。將過濾器映射到一個 servlet中會造成過濾器作用於servlet上。將過濾器映射到一個URL模式中則可以將過濾器應用於任何資源,只要該資源的URLURL模式匹 配。過濾是按照部署描述符的filter-mapping元素出現的順序執行的。

<!ELEMENT filter-mapping (filter-name, (url-pattern | servlet-name))>
<!ELEMENT filter-name (#PCDATA)>
<!ELEMENT url-pattern (#PCDATA)>
<!ELEMENT servlet-name (#PCDATA)>

  filter-name值必須對應filter元素中聲明的其中一個過濾器名稱。下面是一個含有filter-mapping元素的部署描述符:

<?xml version="1.0" encoding="ISO-8859-1">
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
    <filter>
        <filter-name>Encryption Filter</filter-name>
        <filter-class>com.brainysoftware.EncryptionFilter</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>Encryption Filter</filter-name>
        <servlet-name>EncryptionFilteredServlet</servlet-name>
    </filter-mapping>
</web-app>

8. listener元素

  listener元素用來注冊一個監聽器類,可以在Web應用中包含該類。使用listener元素,可以收到事件什么時候發生以及用什么作為響應的通知。

<!ELEMENT listener (listener-class)>
<!ELEMENT listener-class (#PCDATA)>

  下面是一個含有listener元素的有效部署描述符:

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
    <listener>
        <listener-class>MyAppListener</listener-class>
    </listener>
</web-app>

9. servlet元素

  servlet元素用來聲明一個servlet

<!ELEMENT servlet (icon?, servlet-name, display-name?, description?,
(servlet-class|jsp-file), init-param*, load-on-startup?, run-as?,
security-role-ref*)>
<!ELEMENT servlet-name (#PCDATA)>
<!ELEMENT servlet-class (#PCDATA)>
<!ELEMENT jsp-file (#PCDATA)>
<!ELEMENT init-param (param-name, param-value, description?)>
<!ELEMENT load-on-startup (#PCDATA)>
<!ELEMENT run-as (description?, role-name)>
<!ELEMENT role-name (#PCDATA)>

  icondisplay-namedescription元素的用法和上一節介紹的用法相同。init-param元素與context-param元素具有相同的元素描述符。可以使用init-param子元素將初始化參數名和參數值傳遞給servlet

  (1) servlet-nameservlet-classjsp-file元素。servlet元素必須含有servlet-name元素和servlet-class元素,或者servlet-name元素和jsp-file元素。描述如下:

  • servlet-name元素用來定義servlet的名稱,該名稱在整個應用中必須是惟一的。
  •  servlet-class元素用來指定servlet的完全限定的名稱。
  • jsp-file元素用來指定應用中JSP文件的完整路徑。這個完整路徑必須由a/開始。

  (2) load-on-startup元素

  當啟動Web容器時,用load-on-startup元素自動將servlet加入內存。加載servlet就意味着實例化這個servlet,並調用它的init方法。可以使用這個元素來避免第一個servlet請求的響應因為servlet載入內存所導致的任何延遲。如果load-on- startup元素存在,而且也指定了jsp-file元素,則JSP文件會被重新編譯成servlet,同時產生的servlet也被載入內存。load-on-startup元素的內容可以為空,或者是一個整數。這個值表示由Web容器載入內存的順序。舉個例子,如果有兩個servlet元素都含有load-on-startup子元素,則load-on-startup子元素值較小的servlet將先被加載。如果load-on- startup子元素值為空或負值,則由Web容器決定什么時候加載servlet。如果兩個servletload-on-startup子元素值相同,則由Web容器決定先加載哪一個servlet

  (3) run-as元素

  如果定義了run-as元素,它會重寫用於調用Web應用中servlet所設定的Enterprise JavaBean(EJB)的安全身份。Role-name是為當前Web應用定義的一個安全角色的名稱。

  (4) security-role-ref元素

  security-role-ref元素定義一個映射,該映射在servlet中用isUserInRole (String name)調用的角色名與為Web應用定義的安全角色名之間進行。security-role-ref元素的描述如下:

<!ELEMENT security-role-ref (description?, role-name, role-link)>
<!ELEMENT description (#PCDATA)>
<!ELEMENT role-name (#PCDATA)>
<!ELEMENT role-link (#PCDATA)>

  role-link元素用來將安全角色引用鏈接到已定義的安全角色。role-link元素必須含有已經在security-role元素中定義的一個安全角色的名稱。

  (5) Faces Servletservlet元素

  在 JSF應用中,需要為Faces Servlet定義一個servlet元素,如下所示:

<?xml version="1.0"?>
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
    <!-- Faces Servlet -->
    <servlet>
        <servlet-name>Faces Servlet</servlet-name>
        <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
        <load-on-startup> 1 </load-on-startup>
    </servlet>
    <!-- Faces Servlet Mapping -->
    <servlet-mapping>
        <servlet-name>Faces Servlet</servlet-name>
        <url-pattern>/faces/*</url-pattern>
    </servlet-mapping>
</web-app>

10. seervlet-mapping 元素

  servlet-mapping 元素將URL模式映射到某個servlet

<!ELEMENT servlet-mapping (servlet-name, url-pattern)>
<!ELEMENT servlet-name (#PCDATA)>
<!ELEMENT url-pattern (#PCDATA)>

  在前面的“servlet元素一節中已經介紹了使用servlet-mapping元素的例子。

 

11. session-config元素

 

  session-config元素為Web應用中的javax.servlet.http.HttpSession對象定義參數。

 

<!ELEMENT session-config (session-timeout?)>
<!ELEMENT session-timeout (#PCDATA)>

 

  session-timeout元素用來指定默認的會話超時時間間隔,以分鍾為單位。該元素值必須為整數。如果session-timeout元素的值為零或負數,則表示會話將永遠不會超時。下面是一個部署描述符,在用戶最近訪問HttpSession對象30分鍾后,HttpSession對象默認為無效:

 

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
    <session-config>
        <session-timeout>30</session-timeout>
    </session-config>
</web-app>

 

 

12. mime-mapping元素

 

mime-mapping元素將mime類型映射到擴展名。

 

<!ELEMENT mime-mapping (extension, mime-type)>

 

<!ELEMENT extension (#PCDATA)>

 

<!ELEMENT mime-type (#PCDATA)>

 

extension元素用來描述擴展名。mime-type元素則為MIME類型。

 

舉個例子,下面的部署描述符將擴展名txt映射為text/plain

 

<?xml version="1.0" encoding="ISO-8859-1"?>

 

<!DOCTYPE web-app

 

PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"

 

"http://java.sun.com/dtd/web-app_2_3.dtd">

 

<web-app>

 

<mime-mapping>

 

<extension>txt</extension>

 

<mime-type>text/plain</mime-type>

 

</mime-mapping>

 

</web-app>

 

 

 

常見的MIME類型 

 

超文本標記語言文本 .htm,.html text/html 

 

普通文本 .txt text/plain 

 

RTF文本 .rtf application/rtf 

 

GIF圖形 .gif image/gif 

 

JPEG圖形 .ipeg,.jpg image/jpeg 

 

au聲音文件 .au audio/basic 

 

MIDI音樂文件 mid,.midi audio/midi,audio/x-midi 

 

RealAudio音樂文件 .ra, .ram audio/x-pn-realaudio 

 

MPEG文件 .mpg,.mpeg video/mpeg 

 

AVI文件 .avi video/x-msvideo 

 

GZIP文件 .gz application/x-gzip 

 

TAR文件 .tar application/x-tar  

 

 

 

13. welcome-file-list元素

 

當用戶在瀏覽器中輸入的URL不包含某個servlet名或JSP頁面時,welcome-file-list元素可指定顯示的默認文件。

 

<!ELEMENT welcome-file-list (welcome-file+)>

 

<!ELEMENT welcome-file (#PCDATA)>

 

舉個例子說明,假設用戶在瀏覽器的地址框中輸入http://www.mycompany.com/appName/等地址。如果在Web應用的部署描述符中沒有指定welcome-file-list元素,用戶就會看到一個權限錯誤消息,或者是應用目錄下的文件和目錄列表。如果定義了welcome-file-list元素,用戶就能看到由該元素指定的具體文件。

 

welcome-file子元素用於指定默認文件的名稱。welcome-file-list元素可以包含一個或多個welcome-file子元素。如果在第一個welcome-file元素中沒有找到指定的文件,Web容器就會嘗試顯示第二個,以此類推。

 

下面是一個包含welcome-file-list元素的部署描述符。該元素包含兩個welcome-file元素:第一個指定應用目錄中的main.html文件,第二個定義jsp目錄下的welcom.jsp文件,jsp目錄也在應用目錄下。

 

<?xml version="1.0" encoding="ISO-8859-1"?>

 

<!DOCTYPE web-app

 

PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"

 

"http://java.sun.com/dtd/web-app_2_3.dtd">

 

<web-app>

 

<welcome-file-list>

 

<welcome-file>main.html</welcome-file>

 

<welcome-file>jsp/welcome.jsp</welcome-file>

 

</welcome-file-list>

 

</web-app>

 

如果用戶鍵入的URL不包含servlet名稱、JSP頁面或其他資源,則不會在應用目錄中找到main.html文件,這時就會顯示jsp目錄下的welcome.jsp文件。

 

 

 

 

 

 

14. error-page元素

 

error-page元素用於將一段錯誤代碼或一個異常類型映射到Web應用中的資源路徑,從而在產生特殊的HTTP錯誤或指定的Java異常時,將顯示相關的資源。

 

<!ELEMENT error-page ((error-code | exception-type), location)>

 

<!ELEMENT error-code (#PCDATA)>

 

<!ELEMENT exception-type (#PCDATA)>

 

<!ELEMENT location (#PCDATA)>

 

error-code元素包含HTTP錯誤代碼。exception-typeJava異常類型的完全限定的名稱。location元素是Web應用中的資源相對於應用目錄的路徑。location的值必須從a/開始。

 

舉個例子,每次產生HTTP 404錯誤代碼時,下面的部署描述符可使Web容器顯示error404.html頁面:

 

<?xml version="1.0" encoding="ISO-8859-1"?>

 

<!DOCTYPE web-app

 

PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"

 

"http://java.sun.com/dtd/web-app_2_3.dtd">

 

<web-app>

 

<error-page>

 

<error-code>404</error-code>

 

<location>/error404.html</location>

 

</error-page>

 

</web-app>

 

 

 

15. taglib元素

 

taglib元素描述JSP定制標記庫。

 

<!ELEMENT taglib (taglib-uri, taglib-location)>

 

<!ELEMENT taglib-uri (#PCDATA)>

 

<!ELEMENT taglib-location (#PCDATA)>

 

taglib-uri元素是用於Web應用中的標記庫的URItaglib-uri元素的值與WEB-INF目錄相對應。

 

taglib-location元素包含一個位置,其中可以找到標記庫的標記庫描述符(TLD)文件

 

 

 

16. resource-env-ref元素

 

可以使用resource-env-ref元素來指定對管理對象的servlet引用的聲明,該對象與servlet環境中的資源相關聯。

 

<!ELEMENT resource-env-ref (description?, resource-env-ref-name,

 

resource-env-ref-type)>

 

<!ELEMENT resource-env-ref-name (#PCDATA)>

 

<!ELEMENT resource-env-ref-type (#PCDATA)>

 

resource-env-ref-name元素是資源環境引用的名稱,其值為servlet代碼中使用的環境的入口名稱。該名稱是一個與java:comp/env相對應的Java命名和目錄接口(JNDI)名稱,該名稱在整個Web應用中必須是惟一的。

 

 

 

17. resource-ref元素

 

resource-ref元素用於指定對外部資源的servlet引用的聲明。

 

<!ELEMENT resource-ref (description?, res-ref-name,

 

res-type, res-auth, res-sharing-scope?)>

 

<!ELEMENT description (#PCDATA)>

 

<!ELEMENT res-ref-name (#PCDATA)>

 

<!ELEMENT res-type (#PCDATA)>

 

<!ELEMENT res-auth (#PCDATA)>

 

<!ELEMENT res-sharing-scope (#PCDATA)>

 

resource-ref子元素的描述如下:

 

● res-ref-name是資源工廠引用名的名稱。該名稱是一個與java:comp/env上下文相對應的JNDI名稱,並且在整個Web應用中必須是惟一的。

 

● res-auth表明:servlet代碼通過編程注冊到資源管理器,或者是容器將代表servlet注冊到資源管理器。該元素的值必須為ApplicationContainer

 

● res-sharing-scope表明:是否可以共享通過給定資源管理器連接工廠引用獲得的連接。該元素的值必須為Shareable(默認值)Unshareable

 

 

 

18. security-constraint元素

 

部署描述符中的security-constraint元素允許不通過編程就可以限制對某個資源的訪問。

 

<!ELEMENT security-constraint (display-name?,

 

web-resource-collection+,

 

auth-constraint?, user-data-constraint?)>

 

<!ELEMENT display-name (#PCDATA)>

 

<!ELEMENT web-resource-collection (web-resource-name, description?,

 

url-pattern*, http-method*)>

 

<!ELEMENT auth-constraint (description?, role-name*)>

 

<!ELEMENT user-data-constraint (description?, transport-guarantee)>

 

(1) web-resource-collection元素

 

web-resource-collection元素標識需要限制訪問的資源子集。在web-resource-collection元素中,可以定義URL模式和HTTP方法。如果不存在HTTP方法,就將安全約束應用於所有的方法。

 

<!ELEMENT web-resource-collection (web-resource-name, description?,

 

url-pattern*, http-method*)>

 

<!ELEMENT web-resource-name (#PCDATA)>

 

<!ELEMENT description (#PCDATA)>

 

<!ELEMENT url-pattern (#PCDATA)>

 

<!ELEMENT http-method (#PCDATA)>

 

web-resource-name是與受保護資源相關聯的名稱。http-method元素可被賦予一個HTTP方法,比如GETPOST

 

(2) auth-constraint元素

 

auth-constraint元素用於指定可以訪問該資源集合的用戶角色。如果沒有指定auth-constraint元素,就將安全約束應用於所有角色。

 

<!ELEMENT auth-constraint (description?, role-name*)>

 

<!ELEMENT description (#PCDATA)>

 

<!ELEMENT role-name (#PCDATA)>

 

role-name元素包含安全角色的名稱。

 

(3) user-data-constraint元素

 

user-data-constraint元素用來顯示怎樣保護在客戶端和Web容器之間傳遞的數據。

 

<!ELEMENT user-data-constraint (description?, transport-guarantee)>

 

<!ELEMENT description (#PCDATA)>

 

<!ELEMENT transport-guarantee (#PCDATA)>

 

transport-guarantee元素必須具有如下的某個值:

 

● NONE,這意味着應用不需要傳輸保證。

 

● INTEGRAL,意味着服務器和客戶端之間的數據必須以某種方式發送,而且在傳送中不能改變。

 

● CONFIDENTIAL,這意味着傳輸的數據必須是加密的數據。

 

在大多數情況下,安全套接字層(SSL)用於INTEGRALCONFIDENTIAL

 

 

 

 

 

19. login-config元素

 

login-config元素用來指定所使用的驗證方法、領域名和表單驗證機制所需的特性。

 

<!ELEMENT login-config (auth-method?, realm-name?,

 

form-login-config?)>

 

<!ELEMENT auth-method (#PCDATA)>

 

<!ELEMENT realm-name (#PCDATA)>

 

<!ELEMENT form-login-config (form-login-page, form-error-page)>

 

login-config子元素的描述如下:

 

● auth-method指定驗證方法。它的值為下面的一個:BASICDIGESTFORM CLIENT-CERT

 

● realm-name指定HTTP Basic驗證中使用的領域名。

 

● form-login-config指定基於表單的登錄中應該使用的登錄頁面和出錯頁面。如果沒有使用基於表單的驗證,則忽略這些元素。這個元素的定義如下,其中form-login-page用於指定顯示登錄頁面的資源路徑, form-error-page則用於指定用戶登錄失敗時顯示出錯頁面的資源路徑。這兩個頁面路徑都必須以a/開始,並與應用目錄相對應。

 

<!ELEMENT form-login-config (form-login-page, form-error-page)>

 

<!ELEMENT form-login-page (#PCDATA)>

 

<!ELEMENT form-error-page (#PCDATA)>

 

 

 

20. security-role元素

 

security-role元素指定用於安全約束中的安全角色的聲明。

 

<!ELEMENT security-role (description?, role-name)>

 

<!ELEMENT description (#PCDATA)>

 

<!ELEMENT role-name (#PCDATA)>

 

 

21. env-entry元素

 

env-entry元素用於指定應用環境入口。

 

<!ELEMENT env-entry (description?, env-entry-name, env-entry-value?,

 

env-entry-type)>

 

<!ELEMENT description (#PCDATA)>

 

<!ELEMENT env-entry-name (#PCDATA)>

 

<!ELEMENT env-entry-value (#PCDATA)>

 

<!ELEMENT env-entry-type (#PCDATA)>

 

env-entry-name元素包含Web應用環境入口的名稱。該名稱是一個與java:comp/env相對應的JNDI名稱,並且在整個應用中必須是惟一的。

 

env-entry-value元素包含Web應用環境入口的值。該值必須是一個字符串類型的值,並且對於指定類型的構造函數是有效的,該函數獲得一個 String參數;或者對於java.lang.Character是有效的,java.lang.Character對象是一個字符。

 

env-entry-type元素包含環境入口值的完全限定的Java類型,該環境入口值是Web應用代碼所期望的。這個env-entry-type元素的值必須是如下之一:

 

java.lang.Boolean

 

java.lang.Byte

 

java.lang.Character

 

java.lang.String

 

java.lang.Short

 

java.lang.Integer

 

java.lang.Long

 

java.lang.Float

 

java.lang.Double

 

 

 

22. ejb-ref元素

 

ejb-ref元素用於指定EJBhome接口的引用。

 

<!ELEMENT ejb-ref (description?, ejb-ref-name, ejb-ref-type, home,

 

remote, ejb-link?)>

 

<!ELEMENT description (#PCDATA)>

 

<!ELEMENT ejb-ref-name (#PCDATA)>

 

<!ELEMENT ejb-ref-type (#PCDATA)>

 

<!ELEMENT home (#PCDATA)>

 

<!ELEMENT remote (#PCDATA)>

 

<!ELEMENT ejb-link (#PCDATA)>

 

ejb-ref-name包含EJB引用的名稱。EJB引用是servlet環境中的一個入口,它與java:comp/env相對應。這個名稱在Web應用中必須是惟一的。為求一致性,推薦您的ejb-ref-name元素名稱以ejb/開始。

 

ejb-ref-name元素包含引用的EJB的期望類型。這個值必須是EntitySession

 

home元素包含EJBhome接口的完全限定的名稱。remote元素包含EJBremote接口的完全限定的名稱。

 

ejb-refejb-local-ref元素中用到的ejb-link元素可指定EJB 引用被鏈接到另一個EJBEjb-link元素的值必須是同一個J2EE應用單元中某個EJBejb-nameEjb-link元素中的名稱可以由指定ejb-jar的路徑名組成,該ejb-jar包含引用的EJB。目標bean的名稱添加在后面,用字符a# 與路徑名分隔。路徑名與包含引用EJBWeb應用的WAR相對應。這就允許我們惟一標識具有相同ejb-name的多個企業bean

 

 

 

23. ejb-local-ref元素

 

ejb-local-ref元素用於聲明對EJB的本地home的引用。

 

<!ELEMENT ejb-local-ref (description?, ejb-ref-name, ejb-ref-type,

 

local-home, local, ejb-link?)>

 

<!ELEMENT description (#PCDATA)>

 

<!ELEMENT ejb-ref-name (#PCDATA)>

 

<!ELEMENT ejb-ref-type (#PCDATA)>

 

<!ELEMENT local-home (#PCDATA)>

 

<!ELEMENT local (#PCDATA)>

 

<!ELEMENT ejb-link (#PCDATA)>

 

local元素包含EJB本地接口的完全限定的名稱。Local-home元素包含EJB本地home接口的完全限定的名稱。

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM