<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC "- //Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "[http://java.sun.com/dtd/web-app_2_3.dtd] (http://java.sun.com/dtd/web-app_2_3.dtd)">
<web-app>
<display-name>Sample Application</display-name>
<description>This is a sample application</description> <filter> <!–過濾器名,可以隨便取,當(dāng)web應(yīng)用中有多個(gè)過濾器時(shí)不允許重名.–>
<filter-name>SampleFilter</filter-name>
<!–具體的過濾器的類的完整的包名+類名。注意:不能寫錯(cuò)了。否則容器不能正確的實(shí)例化過濾器–>
<filter-class>mypack.SampleFilter</filter-class>
<init-param>
<!– 參數(shù)名 –>
<param-name>initParam1</param-name>
<!– 參數(shù)值 –>
<param-value>2</param-value>
</init-param>
</filter> <!– Define the SampleFilter Mapping –> <filter-mapping>
<!–過濾器名,注意要和上面的<filter-name>里的名字一樣。–>
<filter-name>SampleFilter</filter-name>
<!– 指定過濾器負(fù)責(zé)過濾的URL。這里指定了*.jsp表示在訪問任何一個(gè)jsp頁面時(shí)都會(huì)先使用mypack.SampleFilter過濾器進(jìn)行過濾。如果寫成login.jsp.則只有在訪問login.jsp時(shí)才會(huì)調(diào)用該過濾器進(jìn)行過濾。–>
<url-pattern>*.jsp</url-pattern>
</filter-mapping>
<servlet>
<!– Servlet名字,可以隨便取,有多個(gè)Servlet時(shí)不允許重名–>
<servlet-name>SampleServlet</servlet-name>
<!–指定實(shí)現(xiàn)這個(gè)Servlet的類。完整的包名+類名–>
<servlet-class>mypack.SampleServlet</servlet-class>
<!–定義Servlet的初始化參數(shù)(包括參數(shù)名和參數(shù)值)一個(gè)<servlet>元素里可以有多個(gè)<init-param>元素。在Servlet類中通過ServletConfig類的來訪問這些參數(shù)。 –>
<init-param>
<!– 參數(shù)名 –>
<param-name>initParam1</param-name>
<!– 參數(shù)值 –>
<param-value>2</param-value>
</init-param>
<!–指定當(dāng)前Web應(yīng)用啟動(dòng)時(shí)裝載Servlet的次序。當(dāng)這個(gè)數(shù)>=0時(shí),容器會(huì)按數(shù)值從小到大依次加載。如果數(shù)值<0或沒有指定,容器將載Web客戶首次訪問這個(gè)Servlet時(shí)加載。–>
<load-on-startup>1</load-on-startup>
</servlet>
<!– Define the SampleServlet Mapping –>
<servlet-mapping>
<!–必須和<servlet>里的<servlet-name>內(nèi)容一樣–>
<servlet-name>SampleServlet</servlet-name>
<!–指定訪問這個(gè)Servlet的URL。這里給出的是對(duì)于整個(gè)Web應(yīng)用的相對(duì)URL路徑。–>
<url-pattern>/sample</url-pattern>
</servlet-mapping>
<session-config>
<!–設(shè) 定HttpSession的生命周期。這里以分鐘計(jì)算。下面的設(shè)定指明Session在最長(zhǎng)不活動(dòng)時(shí)間為10分鐘。過了這個(gè)時(shí)間,Servlet容器將它 作為無效處理。注意這里和程序里指定的計(jì)數(shù)單位不同,程序里是以秒為單位。<session-config>只有<session- timeout>這個(gè)元素–>
<session-timeout>10</session-timeout>
</session-config>
<!— 配置會(huì)話偵聽器,class表示一個(gè)HttpSessionListener或 HttpSessionActivationListener 或 HttpSessionAttributeListener或 HttpSessionBindingListener的實(shí)現(xiàn)類。該節(jié)點(diǎn)允許多個(gè) –>
<listener>
<listener-class>com.cn.SessionListenerImpl</listener-class>
</listener>
<!– 在 用戶訪問Web應(yīng)用時(shí),如果僅給出Web應(yīng)用的根訪問URL,沒有指定具體的文件名,容器會(huì)調(diào)用<weblcome-file- list> 元素里指定的文件清單。<welcome-file-list>里允許有多個(gè)<welcome-file>元 素,每個(gè)元素代表一個(gè)文件。容器會(huì)先找第一文文件件是否存在,如果存在這把這個(gè)文件返回個(gè)客戶,不再進(jìn)行其他文件的查找。如果不存在則找第二個(gè)文件,依次 類推。如果所有文件都不存在,則跑出404錯(cuò)誤–>
<welcome-file-list>
<welcome-file>login.jsp</welcome-file>
<welcome-file>index.htm</welcome-file>
</welcome-file-list>
<!– 設(shè)置Web應(yīng)用引用的自定義標(biāo)簽庫。下面的代碼定義了一個(gè)/mytaglib標(biāo)簽庫,它對(duì)應(yīng)的TLD文件為/WEB-INF/mytaglib.tld –>
<taglib>
<taglib-uri>/mytaglib</taglib-uri>
<taglib-location>/WEB-INF/mytaglib.tld</taglib-location>
</taglib>
<!– 如果Web應(yīng)用訪問了由Servlet容器管理的某個(gè)JNDI Resource必須在這里聲明對(duì)JNDI Resource的引用 –>
<resource-ref>
<!– 對(duì)應(yīng)用資源的說明 –>
<description>DB Connection</description>
<!– 指定所引用資源的JNDI名字 –>
<res-ref-name>jdbc/sampleDb</res-ref-name>
<!– 指定所引用資源的類名字 –>
<res-type>javax.sql.DataSource</res-type>
<!– 指定管理所引用資源的Manager, 它有兩個(gè)可選值:Container和Application.Container表示由容器來創(chuàng)建和管理Resource,Application表示由Web應(yīng)用來管理和創(chuàng)建Resource –>
<res-auth>Container</res-auth>
</resource-ref>
<security-constraint>
<web-resource-collection>
<!– 這個(gè)名字是必須的,由工具使用,別的地方不使用 –>
<web-resource-name>my application</web-resource-name>
<!– 指定要受約束的資源,至少有一個(gè)。可以有多個(gè). –>
<uri-pattern>/*</uri-pattern>
<!– 描 述了度可與URL模式指定的資源哪些方法是受約束的,如果沒有 <http-method>元素,表示任何角色的人都無法訪問任何http的方 法 。這里放置了GET方法,表示只有GET方法是受約束的。其他任何角色的人可以訪問POST和其他的方法。但不能訪問GET方法。–>
<http-method>GET</http-method>
</web-resource-collection>
<!– 如果沒有<auth-constraint>表示所有角色都能訪問GET方法,如果是<auth-constraint/>表示任何角色都不能訪問GET方法 –>
<auth-constraint>
<!– 可選的。表示哪些角色能夠在指定的資源上調(diào)用受約束的方法。這里表示只有擁有Admin和Member角色的人能夠訪問GET方法
<security-role>>里的<role-name>值一樣 –>
<role-name>Admin</role-name>
<role-name>Member</role-name>
</auth-constraint>
</security-constraint>
<!– 將指定的角色映射到web.xml里 –> <security-role>
<description>The role that is required to log into the my Application
</description>
<!– 以下的角色和tomcat-users.xml里的<tomcat-users>里的 <role rolename=""/>里的rolename屬性值對(duì)應(yīng) –>
<role-name>Guest</role-name>
<role-name>Admin</role-name>
<role-name>Member</role-name>
</security-role>
<!– 如果要想進(jìn)行認(rèn)證,必須有<login-config>–>
<login-config>
<!– 認(rèn)證方式。有4種:BASIC:基本。 DIGEST:摘要。CLIENT-CERT:客戶證書(能提供最高強(qiáng)度的認(rèn)證)。FORM:表單 –>
<auth-method>FORM</auth-method>
<realm-name>
Tomcat Servet Configuraton Form-Based Authentication Area
</realm-name>
<form-login-config>
<form-login-page>/login.jsp</form-login-page>
<form-error-page>/error.jsp</form-error-page>
</form-login-config>
</login-config>
</web-app>
web.xml詳解
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
相關(guān)閱讀更多精彩內(nèi)容
- 學(xué)了一段時(shí)間的Java Web,很早也知道tomcat,但是每每開始進(jìn)行開發(fā)時(shí),總是遇到很多陌生名詞和概念。不得已...
- Spring MVC中,applicationContext.xml [ServletName]-servlet....
- 小錦鯉這個(gè)人,嗯,我至今為止還沒和她友盡很神奇。 有一天我和小錦鯉說,我準(zhǔn)備自己開個(gè)公眾號(hào)當(dāng)博客寫文章用,她和我說...
- 熵本是一個(gè)熱力學(xué)概念,描述封閉系統(tǒng)中無序的混亂程度,是一個(gè)量詞,單位為焦耳/熱力學(xué)溫度。后來由德魯克引入管理領(lǐng)域,...