定義Web.xml

來源:互聯網
上載者:User

1定義頭和根項目

  部署描述符檔案就像所有XML檔案一樣,必須以一個XML頭開始。這個頭聲明可以使用的XML版本並給出檔案的字元編碼。
  DOCYTPE聲明必須立即出現在此頭之後。這個聲明告訴伺服器適用的servlet規範的版本(如2.2或2.3)並指定治理此檔案其餘部分內容的文法的DTD(DocumentTypeDefinition,文件類型定義)。
所有部署描述符檔案的頂層(根)元素為web-app。請注重,XML元素不像HTML,他們是大小寫敏感的。因此,web-App和WEB-APP都是不合法的,web-app必須用小寫。

2部署描述符檔案內的元素次序

  XML元素不僅是大小寫敏感的,而且它們還對出現在其他元素中的次序敏感。例如,XML頭必須是檔案中的第一項,DOCTYPE聲明必須是第二項,而web-app元素必須是第三項。在web-app元素內,元素的次序也很重要。伺服器不一定強制要求這種次序,但它們答應(實際上有些伺服器就是這樣做的)完全拒絕執行含有次序不正確的元素的Web應用。這表示使用非標準元素次序的web.xml檔案是不可移植的。
  下面的列表給出了所有可直接出現在web-app元素內的合法元素所必需的次序。例如,此列表說明servlet元素必須出現在所有servlet-mapping元素之前。請注重,所有這些元素都是可選的。因此,可以省略掉某一元素,但不能把它放於不正確的位置。
  iconicon元素指出IDE和GUI工具用來表示Web應用的一個和兩個影像檔的位置。
  display-namedisplay-name元素提供GUI工具可能會用來標記這個特定的Web應用的一個名稱。
  descriptiondescription元素給出與此有關的說明性文本。
  context-paramcontext-param元素宣告應用範圍內的初始化參數。
  filter過濾器元素將一個名字與一個實現javax.servlet.Filter介面的類相關聯。
  filter-mapping一旦命名了一個過濾器,就要利用filter-mapping元素把它與一個或多個servlet或JSP頁面相關聯。
  listenerservletAPI的版本2.3增加了對事件監聽程式的支援,事件監聽程式在建立、修改和刪除會話或servlet環境時得到通知。Listener元素指出事件監聽程式類。
  servlet在向servlet或JSP頁面制定初始化參數或定製URL時,必須首先命名servlet或JSP頁面。Servlet元素就是用來完成此項任務的。
  servlet-mapping伺服器一般為servlet提供一個預設的URL:http://host/webAppPrefix/servlet/ServletName。但是,經常會更改這個URL,以便servlet可以訪問初始化參數或更輕易地處理相對URL。在更改預設URL時,使用servlet-mapping元素。
  session-config假如某個會話在一定時間內未被訪問,伺服器可以拋棄它以節省記憶體。可通過使用HttpSession的setMaxInactiveInterval方法明確設定單個會話對象的逾時值,或者可利用session-config元素制定預設逾時值。
  mime-mapping假如Web應用具有想到非凡的檔案,希望能保證給他們分配特定的MIME類型,則mime-mapping元素提供這種保證。
  welcom-file-listwelcome-file-list元素指示伺服器在收到引用一個目錄名而不是檔案名稱的URL時,使用哪個檔案。
lerror-pageerror-page元素使得在返回特定HTTP狀態碼時,或者特定類型的異常被拋出時,能夠制定將要顯示的頁面。
  taglibtaglib元素對標記庫描述符檔案(TagLibraryuDescriptorfile)指定別名。此功能使你能夠更改TLD檔案的位置,而不用編輯使用這些檔案的JSP頁面。
  resource-env-refresource-env-ref元素宣告與資源相關的一個治理對象。
  resource-refresource-ref元素宣告一個資源工廠使用的外部資源。
  security-constraintsecurity-constraint元素制定應該保護的URL。它與login-config元素聯合使用
  login-config用login-config元素來指定伺服器應該怎樣給試圖訪問受保護頁面的使用者授權。它與sercurity-constraint元素聯合使用。
  security-rolesecurity-role元素給出資訊安全角色的一個列表,這些角色將出現在servlet元素內的security-role-ref元素的role-name子項目中。分別地聲明角色可使進階IDE處理安全資訊更為輕易。
  env-entryenv-entry元素宣告Web應用的環境項。
  ejb-refejb-ref元素宣告一個EJB的主目錄的引用。
  ejb-local-refejb-local-ref元素宣告一個EJB的本地主目錄的應用。

3分配名稱和定製的UL

  在web.xml中完成的一個最常見的任務是對servlet或JSP頁面給出名稱和定製的URL。用servlet元素分配名稱,使用servlet-mapping元素將定製的URL與剛分配的名稱相關聯。
3.1分配名稱
為了提供初始化參數,對servlet或JSP頁面定義一個定製URL或分配一個資訊安全角色,必須首先給servlet或JSP頁面一個名稱。可通過servlet元素分配一個名稱。最常見的格式包括servlet-name和servlet-class子項目(在web-app元素內),如下所示:
<servlet>
<servlet-name>Test</servlet-name>
<servlet-class>moreservlets.TestServlet</servlet-class>
</servlet>
  這表示位於WEB-INF/classes/moreservlets/TestServlet的servlet已經得到了註冊名Test。給servlet一個名稱具有兩個主要的含義。首先,初始化參數、定製的URL模式以及其他定製通過此註冊名而不是類名引用此servlet。其次,可在URL而不是類名中使用此名稱。因此,利用剛才給出的定義,URLhttp://host/webAppPrefix/servlet/Test可用於http://host/webAppPrefix/servlet/moreservlets.TestServlet的場所。
  請記住:XML元素不僅是大小寫敏感的,而且定義它們的次序也很重要。例如,web-app元素內所有servlet元素必須位於所有servlet-mapping元素(下一小節介紹)之前,而且還要位於5.6節和5.11節討論的與過濾器或文檔相關的元素(假如有的話)之前。類似地,servlet的servlet-name子項目也必須出現在servlet-class之前。5.2節"部署描述符檔案內的元素次序"將具體介紹這種必需的次序。
  例如,程式清單5-1給出了一個名為TestServlet的簡單servlet,它駐留在moreservlets程式包中。因為此servlet是紮根在一個名為deployDemo的目錄中的Web應用的組成部分,所以TestServlet.class放在deployDemo/WEB-INF/classes/moreservlets中。程式清單5-2給出將放置在deployDemo/WEB-INF/內的web.xml檔案的一部分。此web.xml檔案使用servlet-name和servlet-class元素將名稱Test與TestServlet.class相關聯。圖5-1和圖5-2分別顯示利用預設URL和註冊名調用TestServlet時的結果。

程式清單5-1TestServlet.java
packagemoreservlets;

importjava.io.*;
importjavax.servlet.*;
importjavax.servlet.http.*;

 

publicclassTestServletextendsHttpServlet{
publicvoiddoGet(HttpServletRequestrequest,
HttpServletResponseresponse)
throwsServletException,IOException{
response.setContentType("text/html");
PrintWriterout=response.getWriter();
Stringuri=request.getRequestURI();
out.println(ServletUtilities.headWithTitle("TestServlet")
"<BODYBGCOLOR=/"#FDF5E6/">/n"
"<H2>URI:" uri "</H2>/n"
"</BODY></HTML>");
}
}

程式清單5-2web.xml(說明servlet名稱的摘錄)
<?xmlversion="1.0"encoding="ISO-8859-1"?>
<!DOCTYPEweb-app
PUBLIC"-//SunMicrosystems,Inc.//DTDWebApplication2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">

<web-app>
<!--…-->
<servlet>
<servlet-name>Test</servlet-name>
<servlet-class>moreservlets.TestServlet</servlet-class>
</servlet>
<!--…-->
</web-app>

3.2定義定製的URL
  大多數伺服器具有一個預設的serlvetURL:
  http://host/webAppPrefix/servlet/packageName.ServletName。雖然在開發中使用這個URL很方便,但是我們經常會希望另一個URL用於部署。例如,可能會需要一個出現在Web應用頂層的URL(如,http://host/webAppPrefix/Anyname),並且在此URL中沒有servlet項。位於頂層的URL簡化了相對URL的使用。此外,對許多開發人員來說,頂層URL看上去比更長更麻煩的預設URL更簡短。
事實上,有時需要使用定製的URL。比如,你可能想關閉預設URL映射,以便更好地強制實施安全限制或防止使用者意外地訪問無初始化參數的servlet。假如你禁止了預設的URL,那麼你怎樣訪問servlet呢?這時只有使用定製的URL了。
  為了分配一個定製的URL,可使用servlet-mapping元素及其servlet-name和url-pattern子項目。Servlet-name元素提供了一個任意名稱,可利用此名稱引用相應的servlet;url-pattern描述了相對於Web應用的根目錄的URL。url-pattern元素的值必須以斜杠(/)起始。
  下面給出一個簡單的web.xml摘錄,它答應使用URLhttp://host/webAppPrefix/UrlTest而不是http://host/webAppPrefix/servlet/Test或
  http://host/webAppPrefix/servlet/moreservlets.TestServlet。請注重,仍然需要XML頭、DOCTYPE聲明以及web-app封閉元素。此外,可回憶一下,XML元素出現地次序不是隨意的。非凡是,需要把所有servlet元素放在所有servlet-mapping元素之前。
<servlet>
<servlet-name>Test</servlet-name>
<servlet-class>moreservlets.TestServlet</servlet-class>
</servlet>
<!--...-->
<servlet-mapping>
<servlet-name>Test</servlet-name>
<url-pattern>/UrlTest</url-pattern>
</servlet-mapping>
  URL模式還可以包含萬用字元。例如,下面的小程式指示伺服器發送所有以Web應用的URL首碼開始,以..asp結束的請求到名為BashMS的servlet。
<servlet>
<servlet-name>BashMS</servlet-name>
<servlet-class>msUtils.ASPTranslator</servlet-class>
</servlet>
<!--...-->
<servlet-mapping>
<servlet-name>BashMS</servlet-name>
<url-pattern>

publicclassSorryServletextendsHttpServlet{
publicvoiddoGet(HttpServletRequestrequest,
HttpServletResponseresponse)
throwsServletException,IOException{
response.setContentType("text/html");
PrintWriterout=response.getWriter();
Stringtitle="InvokerServletDisabled.";
out.println(ServletUtilities.headWithTitle(title)
"<BODYBGCOLOR=/"#FDF5E6/">/n"
"<H2>" title "</H2>/n"
"Sorry,accesstoservletsbymeansof/n"
"URLsthatbeginwith/n"
"http://host/webAppPrefix/servlet//n"
"hasbeendisabled./n"
"</BODY></HTML>");
}

publicvoiddoPost(HttpServletRequestrequest,
HttpServletResponseresponse)
throwsServletException,IOException{
doGet(request,response);
}
}

4.2全域禁止啟用器:Tomcat
  Tomcat4中用來關閉預設URL的方法與Tomcat3中所用的很不相同。下面介紹這兩種方法:
1.禁止啟用器:Tomcat4
Tomcat4用與前面相同的方法關閉啟用器servlet,即利用web.xml中的url-mapping元素進行關閉。不同之處在於Tomcat使用了放在install_dir/conf中的一個伺服器專用的全域web.xml檔案,而前面使用的是存放在每個Web應用的WEB-INF目錄中的標準web.xml檔案。
因此,為了在Tomcat4中關閉啟用器servlet,只需在install_dir/conf/web.xml中簡單地注釋出/servlet

publicclassInitServletextendsHttpServlet{
privateStringfirstName,emailAddress;

publicvoidinit(){
ServletConfigconfig=getServletConfig();
firstName=config.getInitParameter("firstName");
emailAddress=config.getInitParameter("emailAddress");
}

publicvoiddoGet(HttpServletRequestrequest,
HttpServletResponseresponse)
throwsServletException,IOException{
response.setContentType("text/html");
PrintWriterout=response.getWriter();
Stringuri=request.getRequestURI();
out.println(ServletUtilities.headWithTitle("InitServlet")
"<BODYBGCOLOR=/"#FDF5E6/">/n"
"<H2>InitParameters:</H2>/n"
"<UL>/n"
"<LI>Firstname:" firstName "/n"
"<LI>Emailaddress:" emailAddress "/n"
"</UL>/n"
"</BODY></HTML>");
}
}

程式清單5-8web.xml(說明初始化參數的摘錄)
<?xmlversion="1.0"encoding="ISO-8859-1"?>
<!DOCTYPEweb-app
PUBLIC"-//SunMicrosystems,Inc.//DTDWebApplication2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">

<web-app>
<!--...-->
<servlet>
<servlet-name>InitTest</servlet-name>
<servlet-class>moreservlets.InitServlet</servlet-class>
<init-param>
<param-name>firstName</param-name>
<param-value>Larry</param-value>
</init-param>
<init-param>
<param-name>emailAddress</param-name>
<param-value>Ellison@Microsoft.com</param-value>
</init-param>
</servlet>
<!--...-->
</web-app>

5.2分配JSP初始化參數
給JSP頁面提供初始化參數在三個方面不同於給servlet提供初始化參數。
1)使用jsp-file而不是servlet-class。因此,WEB-INF/web.xml檔案的servlet元素如下所示:
<servlet>
<servlet-name>PageName</servlet-name>
<jsp-file>/RealPage.jsp</jsp-file>
<init-param>
<param-name>...</param-name>
<param-value>...</param-value>
</init-param>
...
</servlet>
2)幾乎總是分配一個明確的URL模式。對servlet,一般相應地使用以http://host/webAppPrefix/servlet/開始的預設URL。只需記住,使用註冊名而不是原名稱即可。這對於JSP頁面在技術上也是合法的。例如,在上面給出的例子中,可用URLhttp://host/webAppPrefix/servlet/PageName訪問RealPage.jsp的對初始化參數具有訪問權的版本。但在用於JSP頁面時,許多使用者似乎不喜歡應用常規的servlet的URL。此外,假如JSP頁面位於伺服器為其提供了目錄清單的目錄中(如,一個既沒有index.html也沒有index.jsp檔案的目錄),則使用者可能會串連到此JSP頁面,單擊它,從而意外地啟用未初始化的頁面。因此,好的辦法是使用url-pattern(5.3節)將JSP頁面的原URL與註冊的servlet名相關聯。這樣,客戶機可使用JSP頁面的普通名稱,但仍然啟用定製的版本。例如,給定來自項目1的servlet定義,可使用下面的servlet-mapping定義:
<servlet-mapping>
<servlet-name>PageName</servlet-name>
<url-pattern>/RealPage.jsp</url-pattern>
</servlet-mapping>
3)JSP頁使用jspInit而不是init。自動從JSP頁面建立的servlet或許已經使用了inti方法。因此,使用JSP聲明提供一個init方法是不合法的,必須制定jspInit方法。
為了說明初始化JSP頁面的過程,程式清單5-9給出了一個名為InitPage.jsp的JSP頁面,它包含一個jspInit方法且放置於deployDemoWeb應用程式層次結構的頂層。一般,http://host/deployDemo/InitPage.jsp形式的URL將啟用此頁面的不具有初始化參數訪問權的版本,從而將對firstName和emailAddress變數顯示null。但是,web.xml檔案(程式清單5-10)分配了一個註冊名,然後將該註冊名與URL模式/InitPage.jsp相關聯。

程式清單5-9InitPage.jsp
<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.0Transitional//EN">
<HTML>
<HEAD><TITLE>JSPInitTest</TITLE></HEAD>
<BODYBGCOLOR="#FDF5E6">
<H2>InitParameters:</H2>
<UL>
<LI>Firstname:<=firstName>
<LI>Emailaddress:<=emailAddress>
</UL>
</BODY></HTML>
<!
privateStringfirstName,emailAddress;

publicvoidjspInit(){
ServletConfigconfig=getServletConfig();
firstName=config.getInitParameter("firstName");
emailAddress=config.getInitParameter("emailAddress");
}
>

程式清單5-10web.xml(說明JSP頁面的init參數的摘錄)
<?xmlversion="1.0"encoding="ISO-8859-1"?>
<!DOCTYPEweb-app
PUBLIC"-//SunMicrosystems,Inc.//DTDWebApplication2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">

<web-app>
<!--...-->
<servlet>
<servlet-name>InitPage</servlet-name>
<jsp-file>/InitPage.jsp</jsp-file>
<init-param>
<param-name>firstName</param-name>
<param-value>Bill</param-value>
</init-param>
<init-param>
<param-name>emailAddress</param-name>
<param-value>gates@oracle.com</param-value>
</init-param>
</servlet>
<!--...-->
<servlet-mapping>
<servlet-name>InitPage</servlet-name>
<url-pattern>/InitPage.jsp</url-pattern>
</servlet-mapping>
<!--...-->
</web-app>

5.3提供給用範圍內的初始化參數
一般,對單個地servlet或JSP頁面分配初始化參數。指定的servlet或JSP頁面利用ServletConfig的getInitParameter方法讀取這些參數。但是,在某些情形下,希望提供可由任意servlet或JSP頁面藉助ServletContext的getInitParameter方法讀取的系統範圍內的初始化參數。
可利用context-param元素宣告這些系統範圍內的初始化值。context-param元素應該包含param-name、param-value以及可選的description子項目,如下所示:
<context-param>
<param-name>support-email</param-name>
<param-value>blackhole@mycompany.com</param-value>
</context-param>
可回憶一下,為了保證可移植性,web.xml內的元素必須以正確的次序聲明。但這裡應該注重,context-param元素必須出現任意與文檔有關的元素(icon、display-name或description)之後及filter、filter-mapping、listener或servlet元素之前。
5.4在伺服器啟動時裝載servlet
假如servlet或JSP頁面有一個要花很長時間執行的init(servlet)或jspInit(JSP)方法。例如,假如init或jspInit方法從某個資料庫或ResourceBundle尋找產量。這種情況下,在第一個客戶機請求時裝載servlet的預設行為將對第一個客戶機產生較長時間的延遲。因此,可利用servlet的load-on-startup元素規定伺服器在第一次啟動時裝載servlet。下面是一個例子。
<servlet>
<servlet-name>…</servlet-name>
<servlet-class>…</servlet-class><!--Orjsp-file-->
<load-on-startup/>
</servlet>
可以為此元素體提供一個整數而不是使用一個空的load-on-startup。想法是伺服器應該在裝載較大數目的servlet或JSP頁面之前裝載較少數目的servlet或JSP頁面。例如,下面的servlet項(放置在Web應用的WEB-INF目錄下的web.xml檔案中的web-app元素內)將指示伺服器首先裝載和初始化SearchServlet,然後裝載和初始化由位於Web應用的result目錄中的index.jsp檔案產生的servlet。
<servlet>
<servlet-name>Search</servlet-name>
<servlet-class>myPackage.SearchServlet</servlet-class><!--Orjsp-file-->
<load-on-startup>1</load-on-startup>
</servlet>
<servlet>
<servlet-name>Results</servlet-name>
<servlet-class>/results/index.jsp</servlet-class><!--Orjsp-file-->
<load-on-startup>2</load-on-startup>
</servlet>

6聲明過濾器

servlet版本2.3引入了過濾器的概念。雖然所有支援servletAPI版本2.3的伺服器都支援過濾器,但為了使用與過濾器有關的元素,必須在web.xml中使用版本2.3的DTD。
過濾器可截取和修改進入一個servlet或JSP頁面的請求或從一個servlet或JSP頁面發出的相應。在執行一個servlet或JSP頁面之前,必須執行第一個相關的過濾器的doFilter方法。在該過濾器對其FilterChain對象調用doFilter時,執行鏈中的下一個過濾器。假如沒有其他過濾器,servlet或JSP頁面被執行。過濾器具有對到來的ServletRequest對象的全部訪問權,因此,它們可以查看客戶機名、尋找到來的cookie等。為了訪問servlet或JSP頁面的輸出,過濾器可將響應對象包裹在一個替身對象(stand-inobject)中,比方說把輸出累加到一個緩衝區。在調用FilterChain對象的doFilter方法之後,過濾器可檢查緩衝區,如有必要,就對它進行修改,然後傳送到客戶機。
例如,程式清單5-11帝國難以了一個簡單的過濾器,只要訪問相關的servlet或JSP頁面,它就截取請求並在標準輸出上列印一個報告(開發過程中在案頭系統上運行時,大多數伺服器都可以使用這個過濾器)。

程式清單5-11ReportFilter.java
packagemoreservlets;

importjava.io.*;
importjavax.servlet.*;
importjavax.servlet.http.*;
importjava.util.*;

 

publicclassReportFilterimplementsFilter{
publicvoiddoFilter(ServletRequestrequest,
ServletResponseresponse,
FilterChainchain)
throwsServletException,IOException{
HttpServletRequestreq=(HttpServletRequest)request;
System.out.println(req.getRemoteHost()
"triedtoaccess"
req.getRequestURL()
"on" newDate() ".");
chain.doFilter(request,response);
}

publicvoidinit(FilterConfigconfig)
throwsServletException{
}

publicvoiddestroy(){}
}

一旦建立了一個過濾器,可以在web.xml中利用filter元素以及filter-name(任意名稱)、file-class(完整類名)和(可選的)init-params子項目聲明它。請注重,元素在web.xml的web-app元素中出現的次序不是任意的;答應伺服器(但不是必需的)強制所需的次序,並且實際中有些伺服器也是這樣做的。但這裡要注重,所有filter元素必須出現在任意filter-mapping元素之前,filter-mapping元素又必須出現在所有servlet或servlet-mapping元素之前。
例如,給定上述的ReportFilter類,可在web.xml中作出下面的filter聲明。它把名稱Reporter與實際的類ReportFilter(位於moreservlets程式包中)相關聯。
<filter>
<filter-name>Reporter</filter-name>
<filter-class>moresevlets.ReportFilter</filter-class>
</filter>
一旦命名了一個過濾器,可利用filter-mapping元素把它與一個或多個servlet或JSP頁面相關聯。關於此項工作有兩種選擇。
首先,可使用filter-name和servlet-name子項目把此過濾器與一個特定的servlet名(此servlet名必須稍後在相同的web.xml檔案中使用servlet元素宣告)關聯。例如,下面的程式片斷指示系統只要利用一個定製的URL訪問名為SomeServletName的servlet或JSP頁面,就運行名為Reporter的過濾器。
<filter-mapping>
<filter-name>Reporter</filter-name>
<servlet-name>SomeServletName</servlet-name>
</filter-mapping>
其次,可利用filter-name和url-pattern子項目將過濾器與一組servlet、JSP頁面或靜態內容相關聯。例如,相面的程式片段指示系統只要訪問Web應用中的任意URL,就運行名為Reporter的過濾器。
<filter-mapping>
<filter-name>Reporter</filter-name>
<url-pattern>

publicclassContextReporterimplementsServletContextListener{
publicvoidcontextInitialized(ServletContextEventevent){
System.out.println("Contextcreatedon"
newDate() ".");
}

publicvoidcontextDestroyed(ServletContextEventevent){
System.out.println("Contextdestroyedon"
newDate() ".");
}
}

程式清單5-21web.xml(聲明一個監聽程式的摘錄)
<?xmlversion="1.0"encoding="ISO-8859-1"?>
<!DOCTYPEweb-app
PUBLIC"-//SunMicrosystems,Inc.//DTDWebApplication2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">

<web-app>
<!--...-->
<filter-mapping>…</filter-mapping>
<listener>
<listener-class>package.ListenerClass</listener-class>
</listener>
<servlet>...</servlet>
<!--...-->
</web-app>

15J2EE元素

本節描述用作J2EE環境組成部分的Web應用的web.xml元素。這裡將提供一個簡明的介紹,具體內容可以參閱http://java.sun.com/j2ee/j2ee-1_3-fr-spec.pdf的Java2PlantformEnterpriseEdition版本1.3規範的第5章。
ldistributable
distributable元素指出,Web應用是以這樣的方式編程的:即,支援叢集的伺服器可安全地在多個伺服器上分布Web應用。例如,一個可分布的應用必須只使用Serializable對象作為其HttpSession對象的屬性,而且必須避免用執行個體變數(欄位)來實現持久性。distributable元素直接出現在discription元素之後,並且不包含子項目或資料,它只是一個如下的標誌。
<distributable/>
lresource-env-ref
resource-env-ref元素宣告一個與某個資源有關的治理對象。此元素由一個可選的description元素、一個resource-env-ref-name元素(一個相對於java:comp/env環境的JNDI名)以及一個resource-env-type元素(指定資源類型的完整類),如下所示:
<resource-env-ref>
<resource-env-ref-name>
jms/StockQueue
</resource-env-ref-name>
<resource-env-ref-type>
javax.jms.Queue
</resource-env-ref-type>
</resource-env-ref>
lenv-entry
env-entry元素宣告Web應用的環境項。它由一個可選的description元素、一個env-entry-name元素(一個相對於java:comp/env環境JNDI名)、一個env-entry-value元素(項值)以及一個env-entry-type元素(java.lang程式包中一個類型的完全限定類名,java.lang.Boolean、java.lang.String等)組成。下面是一個例子:
<env-entry>
<env-entry-name>minAmout</env-entry-name>
<env-entry-value>100.00</env-entry-value>
<env-entry-type>minAmout</env-entry-type>
</env-entry>
lejb-ref
ejb-ref元素宣告對一個EJB的主目錄的應用。它由一個可選的description元素、一個ejb-ref-name元素(相對於java:comp/env的EJB應用)、一個ejb-ref-type元素(bean的類型,Entity或Session)、一個home元素(bean的主目錄介面的完全限定名)、一個remote元素(bean的遠程介面的完全限定名)以及一個可選的ejb-link元素(當前bean連結的另一個bean的名稱)組成。
lejb-local-ref
ejb-local-ref元素宣告一個EJB的本地主目錄的引用。除了用local-home代替home外,此元素具有與ejb-ref元素相同的屬性並以相同的方式使用

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.