複製鏈接
請複製以下鏈接發送給好友

servlet元素

鎖定
servlet元素是一種函數,功能是用來聲明一個servlet
中文名
servlet元素
所屬類型
函數

servlet元素函數功能

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)>
icon、display-name和description元素用法和上一節介紹的用法相同。init-param元素與context-param元素具有相同的元素描述符。可以使用init-param子元素將初始化參數名和參數值傳遞給servlet

servlet元素各個元素

(1) servlet-name、servlet-class和jsp-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。如果兩個servlet的load-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 Servlet的servlet元素
在 JSF應用中,需要為Faces Servlet定義一個servlet元素,如下所示:
<?xml version="1.0"?>
<!DOCTYPE web-app PUBLIC>
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
<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>