使用 XML 小服務(wù)程序設(shè)置文件設(shè)置小服務(wù)程序
發(fā)表時間:2023-07-30 來源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]使用 XML 小服務(wù)程序配置文件配置小服務(wù)程序這種替代的小服務(wù)程序配置方法涉及到創(chuàng)建一個 XML 小服務(wù)程序配置文件(該配置文件是一個 XML 文檔,它的名稱為 servlet_instance_n...
使用 XML 小服務(wù)程序配置文件配置小服務(wù)程序
這種替代的小服務(wù)程序配置方法涉及到創(chuàng)建一個 XML 小服務(wù)程序配置文件(該配置文件是一個 XML 文檔,它的名稱為 servlet_instance_name.servlet),它包括:
小服務(wù)程序類文件的文件名
小服務(wù)程序說明
小服務(wù)程序初始化參數(shù)
包含小服務(wù)程序可以調(diào)用的 JavaServer Pages(JSPs)的 URL(統(tǒng)一資源定位器)的頁面列表。該頁面列表可以包括一個缺省頁面、一個出錯頁面、一個或多個已裝入的目標(biāo)頁面(如果它們的名稱出現(xiàn)在 HTTP 請求中)。
在 Application Server 版本 3 中,.servlet 文件存儲在應(yīng)用程序的類路徑中。
當(dāng) Application Server 接收到一個對小服務(wù)程序?qū)嵗恼埱髸r,它將在其 .servlet 文件中獲得該小服務(wù)程序的配置信息。為了調(diào)用 JSP,XML 小服務(wù)程序配置文件的 page-list 元素和 PageListServlet 類(將在下一章節(jié)中討論)消除對所調(diào)用 JSPs 的 URL 硬編碼。如果引用的頁面發(fā)生更改時,您只需更新 .servlet 文件,而無需更新小服務(wù)程序代碼和重新編譯該小服務(wù)程序。每當(dāng) .servlet 文件發(fā)生更改時,Application Server 就會自動裝入此小服務(wù)程序?qū)嵗?
WebSphere Application Studio 提供了用于生成小服務(wù)程序的向?qū)。這些向?qū)槊總 Studio 生成的小服務(wù)程序創(chuàng)建一個 XML 小服務(wù)程序配置文件(即 .servlet 文件)。如果您不能訪問 Studio,并且希望手工實(shí)現(xiàn) XML 小服務(wù)程序配置,則請:
創(chuàng)建一個擴(kuò)展 PageListServlet 類的小服務(wù)程序。
使用 XMLServletConfig類創(chuàng)建小服務(wù)程序?qū)嵗?XML 小服務(wù)程序配置文件
展開經(jīng)編譯的小服務(wù)程序及其 XML 小服務(wù)程序配置文件于 Application Server 上。
使用 PageListServlet 類
PageListServlet 是小服務(wù)程序的超級類,這些小服務(wù)程序裝入 XML 小服務(wù)程序配置文件的 <page-list> 元素中包含的頁面。該頁面列表使您能避免對所調(diào)用 JSP 的 URI 進(jìn)行硬編碼。該列表可以包含一個缺省頁面、出錯頁面和其它根據(jù) HTTP 請求而調(diào)用的 JavaServer Page。
PageListServlet 包含一種 callPage() 方法,該方法調(diào)用了一個 JavaServer Page,并將其作為對頁面列表中某個頁面的 HTTP 請求的響應(yīng)。當(dāng)輸入 XML 配置文件的 page-list 元素中的頁面名稱時,PageListServlet.callPage() 方法接收 HttpServletRequest 對象和 HttpServletResponse 對象。
調(diào)用 PageListServlet.callPage() 方法后并不退出。緊跟 callPage() 方法調(diào)用之后的所有小服務(wù)程序代碼將在調(diào)用后運(yùn)行。當(dāng)您架構(gòu)您的小服務(wù)程序代碼時請考慮這一點(diǎn)。
SimplePageListServlet 是一個擴(kuò)展 PageListServlet 類和使用其 callPage() 方法來調(diào)用 JSP 的小服務(wù)程序示例:
public class SimplePageListServlet extends com.ibm.servlet.PageListServlet {
public void service(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException
{
try{
setRequestAttribute("testVar", "test value", req);
setRequestAttribute("otherVar", "other value", req);
String pageName = getPageNameFromRequest(req);
callPage(pageName, req, resp);
}
catch(Exception e){
handleError(req, resp, e);
}
}
}
使用 XMLServletConfig 類
使用 XMLServletConfig 類創(chuàng)建 XML 小服務(wù)程序配置文件(servlet_instance_name.servlet)。如下為一個配置文件:
<?xml version="1.0" ?>
<servlet>
<code>SimplePageListServlet</code>
<description>Shows how to use PageListServlet class</description>
<init-parameter name="name1" value="value2"/>
<page-list>
<default-page>
<uri>/index.jsp</uri>
</default-page>
<error-page>
<uri>/error.jsp</uri>
</error-page>
<page>
<uri>/TemplateA.jsp</uri>
<page-name>page1</page-name>
</page>
<page>
<uri>templateB.jsp</uri>
<page-name>page2</page-name>
</page>
</page-list>
</servlet>
元素 <servlet> 是 XML 配置文件的基本元素。每個 XML 配置文件必須是良好格式的 XML 文檔。這些文件未根據(jù)文檔類型定義(DTD)進(jìn)行驗(yàn)證。
為了使 Application Server 能使用 XML 小服務(wù)程序配置文件裝入小服務(wù)程序?qū)嵗撆渲梦募兄辽俦仨毎?code 元素。對于 PageListServlet,XML 配置文件則至少必須包含 code 元素和 page-list 元素。雖然其中沒有 DTD,但仍建議按元素在示例中顯示的順序來顯示所有元素。這些元素(也稱為標(biāo)記)為:
servlet
基本元素。該元素是由 XMLServletConfig 類自動生成的。
code
小服務(wù)程序(無 .class 擴(kuò)展名)的類名, 即使該小服務(wù)程序位于 JAR 文件中
描述
用戶定義的小服務(wù)程序描述
init-parameter
該元素的屬性指定了一個作為初始化參數(shù)的“名稱-值”對。一個小服務(wù)程序可以有多個初始化參數(shù),每個參數(shù)都有它自己的 init-parameter 元素。
page-list
它根據(jù) HTTP 請求中的路徑信息來標(biāo)識要調(diào)用的 JavaServer Page。page-list 元素可以包含下列子元素:
default-page:如果 HTTP 請求中未包含路徑信息,那么該元素中會包含一個 uri 元素,此元素指出了裝入頁面的位置
error-page:如果 handleError() 方法將請求屬性設(shè)置為“error”,那么該元素中會包含一個 uri 元素,此元素指出了裝入頁面的位置
page:如果 HTTP 請求中包含了頁面名稱的話,那么該元素中會包含一個 uri 元素,此元素指出了要裝入頁面的位置。一個 page-list 元素中可以包含多個 page 元素。
您可以編寫一個使用 XMLServletConfig 類來生成小服務(wù)程序配置文件的 Java 程序。XMLServletConfig 類提供了關(guān)于設(shè)置和獲取文件元素及其內(nèi)容的方法。
展開服務(wù)器上的小服務(wù)程序和 .servlet 文件
為了在 Application Server 上使用經(jīng)編譯的小服務(wù)程序和其 XML 小服務(wù)程序配置文件:
將經(jīng)編譯的小服務(wù)程序和其 .servlet 文件放置在應(yīng)用程序類路徑中。如果該小服務(wù)程序有一個軟件包名,請確保該小服務(wù)程序被放置在該類路徑的正確子目錄下。
請確保在頁面列表中引用的 JavaServer Page(JSP 文件)位于該應(yīng)用程序的文檔根目錄中。