å¨åæweb.xmlææ¡£ä¹åææ³å说ä¸ä¸web.xml䏿 ¹åç´ <web-app>åååç´ ç顺åºé®é¢ï¼å 为å¨web.xmlä¸åç´ å®ä¹çååé¡ºåºæ¯ä¸è½é¢ åçï¼é¤é å¨web.xmlæä»¶ä¸ä½¿ç¨XML Schemaï¼æ¬æä¸å讨论ï¼ï¼å¦åTomcatæå¡å¨å¯è½æåºSAXParseExceptionã
顺åºå¦ä¸ï¼
<web-app>
<display-name>
<description>
<distributable>
<context-param>
<filter>
<filter-mapping>
<listener>
<servlet>
<servlet-mapping>
<session-config>
<mime-mapping>
<welcome-file-list>
<error-page>
<taglib>
<resource-env-ref>
<resource-ref>
<security-constraint>
<login-config>
<security-role>
<env-entry>
<ejb-ref>
<ejb-local-ref>
web.xmlä¸çå¼å¤´å è¡æ¯åºå®çï¼å®å®ä¹äºè¯¥æä»¶çå符ç¼ç ï¼XMLçæ¬ä»¥åå¼ç¨çDTDæä»¶ã
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" " http://java.sun.com/dtd/web-app_2_3.dtd">
å¨web.xmlä¸é¡¶å±åç´ ä¸º<web-app>ï¼å¶ä»ææçååç´ é½å¿é¡»å®ä¹å¨<web-app>å
<display-name>åç´ å®ä¹è¿ä¸ªwebåºç¨çååï¼Java Web æå¡å¨çWeb管çå·¥å·å°ç¨è¿ä¸ªå忥æ å¿Webåºç¨ã
<description>åç´ ç¨æ¥å£°æWebåºç¨çæè¿°ä¿¡æ¯
<context-param>åç´ ç¨æ¥éç½®å¤é¨å¼ç¨çï¼å¨servletä¸å¦æè¦è·å¾è¯¥åç´ ä¸éç½®çå¼ï¼String param-value = getServletContext().getInitParameter("param-name")
<filter>
<filter-name>SampleFilter</filter-name>
<filter-class>com.lpdev.SampleFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>SampleFilter</filter-name>
<url-pattern>*.jsp</url-pattern>
</filter-mapping>
以䏿¯éç½®äºä¸ä¸ªservletè¿æ»¤å¨ï¼å¯¹äºservlet容卿¶å°ç客æ·è¯·æ±ä»¥åååºçååºç»æï¼servleté½è½æ£æ¥åä¿®æ¹å¶ä¸çä¿¡æ¯ï¼ä»¥ä¸ä»£ç æåå½å®¢æ·è¯·æ±è®¿é®Webåºç¨ä¸çææJSPæä»¶æ¶ï¼å°è§¦åSampleFilterè¿æ»¤å¨å·¥ä½ï¼å·ä½çè¿æ»¤äºå¡å¨ç±<filter-class>䏿å®çç±»æ¥å®æ
<servlet>
<servlet-name>IncludeServlet</servlet-name>
<servlet-class>com.lpdev.IncludeServlet</servlet-class>
<init-param>
<param-name>copyright</param-name>
<param-value>/foot.jspf</param-value>
<load-on-startup>1</load-on-startup>
</init-param>
</servlet>
éç½®Servletï¼<servlet-name>æ¯servletçååï¼<servlet-class>æ¯å®ç°è¿ä¸ªServletçç±»ï¼<init-param>å®ä¹Servletçåå§ååæ°ï¼åæ°åååæ°å¼ï¼ï¼ä¸ä¸ªServletå¯ä»¥æå¤ä¸ª<init-param>ï¼å¨Servletç±»ä¸éè¿getInitParameter(String name)æ¹æ³è®¿é®åå§ååæ°
<servlet-mapping>
<servlet-name>IncludeServlet</servlet-name>
<url-pattern>/IncludeServlet</url-pattern>
</servlet-mapping>
éç½®Servletæ å°ï¼<servlet-mapping>åç´ ç¨æ¥è®¾å®å®¢æ·è®¿é®æä¸ªServletçURLï¼è¿éåªéç»åºå¯¹äºæ´ä¸ªwebåºç¨çç¸å¯¹çURLè·¯å¾ï¼<url-pattern>ä¸ç“/”表示å¼å§äºWebåºç¨çæ ¹ç®å½ä¾å¦ï¼å¦æä½ å¨ä½ æ¬å°æºå¨ä¸ä½¿ç¨Tomcat4.1.xï¼å¹¶ä¸å建äºå为“myapp”çåºç¨ç¨åºï¼<url-pattern>/IncludeServlet</url-pattern>该Servletç宿´webå°åå°±æ¯http://localhost:8080/myapp/IncludeServlet
<session-config>åç´ ç¨æ¥è®¾å®HttpSessionççå½å¨æï¼è¯¥åç´ åªæä¸ä¸ª<session-timeout>屿§ï¼æ¶é´å使¯“ç§”ã
<welcome-file-list>å½ç¨æ·è®¿é®webæ¶ï¼å¦æä»ä»ç»åºwebåºç¨çRoot URLï¼æ²¡ææå®å·ä½æä»¶åï¼å®¹å¨è°ç¨è¯¥éç½®ï¼è¯¥åç´ å¯ä»¥åå«å¤ä¸ª<welcome-file>屿§ã
<taglib>åç´ ç¨æ¥è®¾ç½®webå¼ç¨çtag library,ä¾ç¤ºå®ä¹äºä¸ä¸ª“/mytaglib”æ ç¾åºï¼å®å¯¹åºçtldæä»¶ä¸ºï¼/WEB_INF/mytaglib.tld
<taglib>
<taglib-url>/mytaglib</taglib-url>
<taglib-locationg>/WEB-INF/mytaglib.tld</taglib-location>
</taglib>
<resource-ref>妿webåºç¨ç±Servlet容å¨ç®¡ççæä¸ªJNDI Resourceï¼å¿é¡»å¨web.xmlä¸å£°æå¯¹è¿ä¸ªJNDI Resourceçå¼ç¨ã
<resource-ref>
<description>DB Connection</description> //说æ
<res-ref-name>jdbc/sampleDB</res-ref-name> //å¼ç¨èµæºçJNDIåå
<res-type>javax.sql.DataSource</res-type> //å¼ç¨èµæºçç±»åå
<res-auth>Container</res-auth> //管çå¼ç¨èµæºçManager
</resource-ref>
<security-constraint>ç¨æ¥ä¸ºWebåºç¨å®ä¹å®å¨çº¦æ
<security-constraint>
<web-resource-collection>//声æåä¿æ¤çwebèµæº
<web-resource-name>ResourceServlet</web-resource-name>//æ è¯åä¿æ¤webèµæº
<url-pattern>/ResourceServlet</url-pattern>//æå®åä¿æ¤çURLè·¯å¾
<http-method>GET</http-method>//æå®åä¿æ¤çæ¹æ³
<http-method>POST</http-method>
</web-resource-collection>
<auth-constraint>//å¯ä»¥è®¿é®åä¿æ¤èµæºçè§è²
<description>this applies only to admin secrity role</description>
<role-name>admin</role-name>
</auth-constraint>
<user-data-constraint>
<transport-guarantee>NONE</transport-guarantee>
</user-data-constraint>
</security-constraint>
<login-config>åç´ æå®å½Web客æ·è®¿é®åä¿æ¤èµæºæ¶ï¼ç³»ç»å¼¹åºçç»éå¯¹è¯æ¡çç±»åãä¾ç¤ºéç½®äºåºäºè¡¨åéªè¯çç»éçé¢
<login-config>
<auth-method>FORM</auth-method>//BASIC(åºæ¬éªè¯æ³)ï¼DIGEST(æè¦éªè¯)ï¼FORM(表åéªè¯)
<real-name>设å®å®å¨åçåç§°</realname>
<form-login-config>
<form-login-page>/login.jsp</form-login-page>
<form-error-page>/error.jsp</form-error-page>
</form-login-config>
<security-role>ææè¿ä¸ªWebåºç¨å¼ç¨çææè§è²åå
<security-role>
<description>æè¿°</description>
<role-name>admin</role-name>
</security-role>