比較完整的部署描述符(DTD)文件的例子
系統
2455 0
<?
xmlversion="1.0"encoding="ISO-8859-1"
?>
<!
DOCTYPEweb-appPUBLIC"-//SunMicrosystems,Inc.//DTDWebApplication2.3//EN""http://java.sun.com/j2ee/dtds/web-app_2_3.dtd"
>
<
web-app
xmlns
="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi
="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation
="http://java.sun.com/xml/ns/j2eeweb-app_2_4.xsd"
version
="2.4"
>
<
display-name
>
TestWebapp
</
display-name
>
<!--
站點名稱
-->
<
description
>
<!--
站點描述
-->
Thisisasampledeploymentdescriptorthatshowstheuseofimportantelements.
</
description
>
<
icon
>
<
small-icon
>
/images/small.gif
</
small-icon
>
<!--
小圖標的路徑16*16,必須為gifjpg格式
-->
<
large-icon
>
/images/large.gif
</
large-icon
>
<!--
大圖標的路徑32*32,必須為gifjpg格式
-->
</
icon
>
<!--
該標志表示應用程序能夠在多系統之間運行,在有多個servlet下才需要!
-->
<
distributable
/>
<!--
通常context-param指定數據庫驅動、協議設置和URL路徑信息。是application級的變量.只能跟在web-app之后。
取得常量this.getInitParameter("context");
-->
<
context-param
>
<
param-name
>
locale
</
param-name
>
<
param-value
>
US
</
param-value
>
</
context-param
>
<
context-param
>
<
param-name
>
DBName
</
param-name
>
<
param-value
>
Oracle
</
param-value
>
</
context-param
>
<!--
filter和filter-mapping標志必須在任何servlet標志之前定義。listener也是
-->
<
filter
>
<
filter-name
>
TestFilter
</
filter-name
>
<
description
>
Justfortest
</
description
>
<
filter-class
>
filters.TestFilter
</
filter-class
>
<
init-param
>
<
param-name
>
locale
</
param-name
>
<
param-value
>
US
</
param-value
>
</
init-param
>
</
filter
>
<
filter-mapping
>
<
filter-name
>
TestFilter
</
filter-name
>
<
url-pattern
>
/*.jsp
</
url-pattern
>
<!--
如果在servlet上使用該過濾器:<servlet-name>myServlet</servlet-name>
-->
<
dispatcher
>
FORWARD
</
dispatcher
>
<!--
指定請求轉送方式,可設定為request,include,forward,error四種
-->
</
filter-mapping
>
<!--
Definesapplicationeventslisteners
-->
<
listener
>
<
listener-class
>
listeners.MyServletContextListener
</
listener-class
>
</
listener
>
<
listener
>
<
listener-class
>
listeners.MySessionCumContextListener
</
listener-class
>
</
listener
>
<!--
Definesservlets
-->
<
servlet
>
<
servlet-name
>
TestServlet
</
servlet-name
>
<
description
>
Justfortest
</
description
>
<
servlet-class
>
servlets.TestServlet
</
servlet-class
>
<!--
因為JSP頁面要轉換成sevlet,自然希望就像命名servlet一樣命名JSP頁面。為了命名JSP頁面,可將servlet-class元素替換為jsp-file元素
-->
</
servlet
>
<
servlet
>
<
servlet-name
>
HelloServlet
</
servlet-name
>
<
servlet-class
>
servlets.HelloServlet
</
servlet-class
>
<
init-param
>
<!--
該標志定義外層servlet可以訪問的變量的名稱、值和描述
-->
<
param-name
>
locale
</
param-name
>
<
param-value
>
US
</
param-value
>
</
init-param
>
<
load-on-startup
>
1
</
load-on-startup
>
<!--
在servlet的配置當中,該標記指示容器是否在啟動的時候就加載這個servlet,當值為0或者大于0時,表示容器在應用啟動時就加載這個servlet當是一個負數時或者沒有指定時,則指示容器在該servlet被選擇時才加載,正數的值越小,啟動該servlet的優先級越高。
-->
<
security-role-ref
>
<!--
元素提供出現在服務器專用口令文件中的安全角色名的一個別名
-->
<!--
role-nameisusedinHttpServletRequest.isUserInRole(Stringrole)method.
-->
<
role-name
>
manager
</
role-name
>
<!--
role-linkisoneoftherole-namesspecifiedinsecurity-roleelements.
-->
<
role-link
>
supervisor
</
role-link
>
<
security-role-ref
>
</
servlet
>
<!--
Definesservletmappings
-->
<
servlet-mapping
>
<
servlet-name
>
TestServlet
</
servlet-name
>
<
url-pattern
>
/test/*
</
url-pattern
>
<!--
uil-pattern標志確定上下文之后的標志
-->
</
servlet-mapping
>
<
servlet-mapping
>
<
servlet-name
>
HelloServlet
</
servlet-name
>
<
url-pattern
>
*.hello
</
url-pattern
>
</
servlet-mapping
>
<
session-config
>
<!--
specifiessessiontimeoutas30minutes.
-->
<
session-timeout
>
30
</
session-timeout
>
</
session-config
>
<
mime-mapping
>
<
extension
>
jar
</
extension
>
<
mime-type
>
application/java-archive
</
mime-type
>
</
mime-mapping
>
<
mime-mapping
>
<!--
這個例子展示了自動將application/pdfMIME類型與所有擴展名為*.pdf的文件關聯起來
-->
<
extension
>
pdf
</
extension
>
<
mime-type
>
application/pdf
</
mime-type
>
</
mime-mapping
>
<
welcome-file-list
>
<
welcome-file
>
index.html
</
welcome-file
>
<
welcome-file
>
home.html
</
welcome-file
>
<
welcome-file
>
welcome.html
</
welcome-file
>
</
welcome-file-list
>
<
error-page
>
<
error-code
>
404
</
error-code
>
<
location
>
notfoundpage.jsp
</
location
>
</
error-page
>
<
error-page
>
<
exception-type
>
java.sql.SQLException
</
exception-type
>
<
location
>
sqlexception.jsp
</
location
>
</
error-page
>
<
taglib
>
<
taglib-uri
>
/examplelib
</
taglib-uri
>
<
taglib-location
>
/WEB-INF/tlds/examplelib.tld
</
taglib-location
>
</
taglib
>
<
taglib
>
<
taglib-uri
>
http://abc.com/testlib
</
taglib-uri
>
<
taglib-location
>
/WEB-INF/tlds/testlib.jar
</
taglib-location
>
<!--
可以是jar包
-->
</
taglib
>
<
taglib
id
="ABC_MATH_LIB"
>
<!--
可以有并只能有一個id作為屬性
-->
<
taglib-uri
>
/binomial
</
taglib-uri
>
<
taglib-location
>
/WEB-INF/MathLib.tld
</
taglib-location
>
</
taglib
>
<
security-constraint
>
<
display-name
>
ExampleSecurityConstraint
</
display-name
>
<
web-resource-collection
>
<
web-resource-name
>
ProtectedArea
</
web-resource-name
>
<
url-pattern
>
/test/*
</
url-pattern
>
<!--
Whenthereisno<http-method>elementin<security-constraint>,allmethodsareprotected.
-->
<
http-method
>
POST
</
http-method
>
</
web-resource-collection
>
<
web-resource-collection
>
<
web-resource-name
>
AnotherProtectedArea
</
web-resource-name
>
<
url-pattern
>
*.hello
</
url-pattern
>
<!--
Allmethodsareprotectedasnohttp-methodisspecified
-->
</
web-resource-collection
>
<
auth-constraint
>
<!--
設定允許存取的角色名稱,必須符合<security-role>元素設定
-->
<
role-name
>
supervisor
</
role-name
>
</
auth-constraint
>
<!--
這個可選的元素指出在訪問相關資源時使用任何傳輸層保護
-->
<
user-data-constraint
>
<!--
transport-guarantee為NONE值將對所用的通訊協議不加限制。INTEGRAL值表示數據必須以一種防止截取它的人閱讀它的方式傳送。雖然原理上INTEGRAL和CONFIDENTIAL之間可能會有差別,但在當前實踐中,他們都只是簡單地要求用SSL
-->
<
transport-guarantee
>
INTEGRAL
</
transport-guarantee
>
</
user-data-constraint
>
</
security-constraint
>
<
login-config
>
<!--
auth-methodcanbe:BASIC,FORM,DIGEST,orCLIENT-CERT
-->
<
auth-method
>
FORM
</
auth-method
>
<
realm-name
>
sales
</
realm-name
>
<!--
該標志是驗證用來確定某個特定的站點區域
-->
<
form-login-config
>
<
form-login-page
>
/formlogin.html
</
form-login-page
>
<
form-error-page
>
/formerror.jsp
</
form-error-page
>
</
form-login-config
>
</
login-config
>
<!--
Specifiestherolesthataredefinedintheapplicationserver.Forexample,Tomcatdefinesitinconf omcat-users.xml
-->
<
security-role
>
<
role-name
>
supervisor
</
role-name
>
</
security-role
>
<
security-role
>
<
role-name
>
worker
</
role-name
>
</
security-role
>
<!--
*****************************以下是J2EE元素的內容*****************************
-->
<
resource-env-ref
>
<!--
聲明一個與某個資源有關的管理對象
-->
<
resource-env-ref-name
>
jms/StockQueue
</
resource-env-ref-name
>
<!--
一個相對于java:comp/env環境的JNDI名
-->
<
resource-env-ref-type
>
javax.jms.Queue
</
resource-env-ref-type
>
<!--
指定資源類型的完全限定的類
-->
</
resource-env-ref
>
<
env-entry
>
<!--
聲明Web應用的環境項
-->
<
env-entry-name
>
minAmout
</
env-entry-name
>
<!--
一個相對于java:comp/env環境JNDI名
-->
<
env-entry-value
>
100.00
</
env-entry-value
>
<!--
項值
-->
<
env-entry-type
>
minAmout
</
env-entry-type
>
<!--
java.lang程序包中一個類型的完全限定類名,Boolean、String等
-->
</
env-entry
>
<!--
*****************************以下是JSP2.0新增加的內容*****************************
-->
<!--
Servle
分享到:
比較完整的部署描述符(DTD)文件的例子
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061
微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
評論