明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線(xiàn)學(xué)習(xí)分享的學(xué)習(xí)平臺(tái)!

Weblogic6.0部署與設(shè)置WEB應(yīng)用程序(3)

[摘要]URIs與WEB應(yīng)用程序用如下模式來(lái)構(gòu)造從客戶(hù)端訪問(wèn)WEB應(yīng)用程序的URL:http://hoststring/ContextPath/servletPath/pathInfo其中hoststring 或是一個(gè)被映射到一虛擬主機(jī)的主機(jī)名,或是主機(jī)名:端口(hostname:portNumber)C...
URIs與WEB應(yīng)用程序
用如下模式來(lái)構(gòu)造從客戶(hù)端訪問(wèn)WEB應(yīng)用程序的URL:
http://hoststring/ContextPath/servletPath/pathInfo
其中
hoststring
或是一個(gè)被映射到一虛擬主機(jī)的主機(jī)名,或是主機(jī)名:端口
(hostname:portNumber)
ContextPath
WEB應(yīng)用程序的名字
servletPath
被映射到servletPath的一個(gè)servlet
pathInfo
URL的其余部分,典型的是一個(gè)文件名
如正使用虛擬主機(jī),可用虛擬主機(jī)名來(lái)替換URL的hoststring部分。
進(jìn)一步的信息,參考Weblogic服務(wù)器怎樣解釋HTTP請(qǐng)求。
配置Servlets
Servlets被注冊(cè)和配置成為一個(gè)WEB應(yīng)用程序的一部分。通過(guò)給WEB應(yīng)用程序部署描述符添加幾個(gè)條目來(lái)注冊(cè)servlet。第一個(gè),在<servlet>元素下定義servlet的名稱(chēng)和執(zhí)行這個(gè)servlet的已編譯的類(lèi)。這個(gè)元素也包含這個(gè)servlet的初始化參數(shù)和安全角色的定義。第二個(gè),在<servlet-mapping>元素下定義調(diào)用這個(gè)servlet的URL模式。
編輯WEB應(yīng)用程序部署描述符的完整說(shuō)明,參考:
·配置WEB應(yīng)用程序,部署Servlets
·配置WEB應(yīng)用程序,將servlet映射到URL
Servlet映射
Servlet映射控制你如何訪問(wèn)這個(gè)servlet。以下的例子示范了在WEB應(yīng)用程序中可使用的servlet映射的一些方法。在這個(gè)例子中,下面列出了一系列的servlet配置和映射,在隨后的表(參考url模式和Servlet調(diào)用)中列出了用來(lái)調(diào)用這些servlets的URLs。
Listing 8-1 Servlet映射示例

<servlet>
<servlet-name>watermelon</servlet-name>
<servlet-class>myservlets.watermelon</servlet-class>
</servlet>
<servlet>
<servlet-name>garden</servlet-name>
<servlet-class>myservlets.garden</servlet-class>
</servlet>
<servlet>
<servlet-name>list</servlet-name>
<servlet-class>myservlets.list</servlet-class>
</servlet>
<servlet>
<servlet-name>kiwi</servlet-name>
<servlet-class>myservlets.kiwi</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>watermelon</servlet-name>
<url-pattern>/fruit/summer/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>garden</servlet-name>
<url-pattern>/seeds/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>list</servlet-name>
<url-pattern>/seedlist</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>kiwi</servlet-name>
<url-pattern>*.abc</url-pattern>
</servlet-mapping>

Table 8-1 ur模式和Servlet調(diào)用URL調(diào)用的Servlet
http://host:port/mywebapp/fruit/summer/index.htmlwatermelon
http://host:port/mywebapp/fruit/summer/index.abcwatermelon
http://host:port/mywebapp/seedlistlist
http://host:port/mywebapp/seedlist/index.html默認(rèn)servlet,如果已經(jīng)配置的話(huà),或者是一條HTTP 404 file not found錯(cuò)誤消息如list servlet的映射是/seedlist*,就會(huì)調(diào)用list servlet
http://host:port/mywebapp/seedlist/pear.abckiwi如list servlet的映射是/seedlist*,就會(huì)調(diào)用list servlet
http://host:port/mywebapp/seedsgarden
http://host:port/mywebapp/seeds/index.htmlgarden
http://host:port/mywebapp/index.abckiwi
Servlet初始化參數(shù)
在WEB應(yīng)用部署描述符中的<servlet>元素的<init-param>元素中用<param-name>和<param-value>標(biāo)簽定義servlets的初始化參數(shù)。例如:
Listing 8-2配置 Servlet初始化參數(shù)示例

<servlet>
<servlet-name>HelloWorld2</servlet-name>
<servlet-class>examples.servlets.HelloWorld2</servlet-class>
<init-param>
<param-name>greeting</param-name>
<param-value>Welcome</param-value>
</init-param>
<init-param>
<param-name>person</param-name>
<param-value>WebLogic Developer</param-value>
</init-param>
</servlet>

有關(guān)編輯WEB應(yīng)用程序部署描述符的更多信息,參考編寫(xiě)WEB應(yīng)用程序部署描述符。
配置JSP
通過(guò)將JSP文件放在WEB應(yīng)用程序的根目錄(或根目錄下的子目錄)里來(lái)部署它們。另外的JSP配置參數(shù)在weblogic特有的部署描述符(weblogic.xml)的<jsp-descriptor>元素中定義。這些參數(shù)定義以下功能:
·JSP編譯器的選項(xiàng)。
·調(diào)試。
·服務(wù)器檢查需重新編譯的已更新的JSPs的時(shí)間間隔。
·字符編碼。
有關(guān)這些參數(shù)的完整描述,參考JSP參數(shù)名稱(chēng)及值。
有關(guān)編輯weblogic.xml文件的說(shuō)明,參考建立weblogic特有的部署描述符。
配置JSP標(biāo)簽庫(kù)
Weblogic服務(wù)器按照Servlet 2.2規(guī)范提供建立和使用JSP標(biāo)簽的能力。定制的JSP標(biāo)簽就是能從JSP頁(yè)面中調(diào)用的Java類(lèi)。要建立定制JSP標(biāo)簽,需將它們放在標(biāo)簽庫(kù)中,并在標(biāo)簽庫(kù)描述符文件(TLD)中定義它們的行為。這個(gè)TLD必須在WEB應(yīng)用程序描述符中定義,這樣包含JSP頁(yè)面的WEB應(yīng)用程序就可利用它。將TLD文件放在WEB應(yīng)用程序的WEB-INF目錄下是個(gè)好主意,這是因?yàn)檫@個(gè)目錄從不對(duì)公眾開(kāi)放。
在WEB應(yīng)用程序的部署描述符中,需為標(biāo)簽庫(kù)定義URI模式。URI模式必須與JSP頁(yè)面中的taglib指令的值相一致。還需定義TLD的位置。例如,在JSP頁(yè)面中的taglib指令如下:
<%@ taglib uri="myTaglib" prefix="taglib" %>
并且TLD位于WEB應(yīng)用程序的WEB-INF目錄中,就應(yīng)該在WEB應(yīng)用程序的部署描述符中建立如下條目:
<taglib>
 <taglib-uri>myTaglib</taglib-uri>
 <tablig-location>WEB-INF/myTLD.tld</taglib-location>
</taglib>
有關(guān)建立定制JSP標(biāo)簽庫(kù)的更多信息,參考JSP標(biāo)簽擴(kuò)展的編程。
Weblogic服務(wù)器也包含了幾個(gè)可在應(yīng)用程序中使用的定制的JSP標(biāo)簽。這些標(biāo)簽執(zhí)行緩存,基于參數(shù)的流控制,對(duì)象集上的迭代。更多信息,參考使用定制的Weblogic JSP標(biāo)簽。
配置初始(Welcome)頁(yè)面
Weblogic服務(wù)器允許設(shè)置這樣一個(gè)頁(yè)面,這個(gè)頁(yè)面在請(qǐng)求的URL是一個(gè)目錄時(shí)作為默認(rèn)頁(yè)面。這個(gè)特性使得站點(diǎn)更易于使用,因?yàn)橛脩?hù)在輸入U(xiǎn)RL時(shí)不必給出特定的文件名。
在WEB應(yīng)用程序級(jí)定義初始頁(yè)面。如服務(wù)器宿主多個(gè)WEB應(yīng)用程序,就需為每個(gè)WEB應(yīng)用程序單獨(dú)定義不同的初始頁(yè)面。
要定義初始頁(yè)面,編輯WEB應(yīng)用程序部署描述符web.xml。有關(guān)更多信息,參考初始文件。
If you do not define Welcome Pages, WebLogic Server looks for the following files in the following order and serves the first one it finds:
如未定義初始頁(yè)面,Weblogic服務(wù)器以下列順序查找以下文件,并提供它找到的第一個(gè)文件:
1.index.html
2.index.htm
3.index.jsp
更多信息,參考Weblogic服務(wù)器如何解釋HTTP請(qǐng)求。
建立默認(rèn)的servlet
每個(gè)WEB應(yīng)用程序都有一個(gè)默認(rèn)的servlet。這個(gè)默認(rèn)的servlet,可以自定義,如沒(méi)有自定義,Weblogic服務(wù)器會(huì)用一個(gè)名為FileServlet的內(nèi)部servlet作為默認(rèn)的servlet。有關(guān)FileServlet的更多信息,參考Weblogic如何解釋HTTP請(qǐng)求。
可將任何servlet注冊(cè)成為默認(rèn)的servlet。編寫(xiě)自己的默認(rèn)servlet,就可使用自己的邏輯來(lái)決定如何處理回送給默認(rèn)servlet的請(qǐng)求。
建立默認(rèn)的servlet來(lái)代替FileServlet時(shí)應(yīng)小心,因?yàn)镕ileServlet被用來(lái)為大多數(shù)文件提供服務(wù),如文本文件,HTML文件,圖像文件等等。如希望自己的默認(rèn)servlet為這些文件提供服務(wù),就必須將這些功能寫(xiě)進(jìn)自己的默認(rèn)servlet。
建立用戶(hù)定義的默認(rèn)servlet:
1.定義自己的servlet(如在配置Servlets中描述一樣)。
2.用”/” url模式映射自己的默認(rèn)servlet。這樣使得自己的默認(rèn)servlet響應(yīng)文件的所有類(lèi)型,除了擴(kuò)展名是*.htm*或.html類(lèi)型的文件,因?yàn)樗鼈儽粌?nèi)部映射到FileServlet。
如也想使自己的默認(rèn)servlet響應(yīng)以*.htm或*.html結(jié)尾的文件,除“/”映射外,還必須將這些擴(kuò)展名映射到自己的默認(rèn)servlet上。有關(guān)映射servlets的說(shuō)明,參考配置Servlets。
3.如還想FileServlet為其它擴(kuò)展名的文件服務(wù),將那些文件擴(kuò)展名映射到FileServlet(除自己的默認(rèn)servlet的映射外)。例如,要使FileServlet為gif文件服務(wù),映射*.gif到FileServlet。