對一個Servlet建立多個Mapping
當我們想建立多個name或URL patterns 使web使用者能夠請求一個servlet時,該如何處理呢。
那麼在部署描述檔案中與servlet 元素相關的servlet-mapping能夠配置多個。
Example 3-2. Two servlet-mapping tags
<? 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-application_2_3.dtd"
>
< web-app >
< servlet >
< servlet-name > CookieServlet </ servlet-name >
< servlet-class > com.parkerriver.cookbook.CookieServlet </ servlet-class >
</ servlet >
< servlet-mapping >
< servlet-name > CookieServlet </ servlet-name >
< url-pattern > /cookieservlet </ url-pattern >
</ servlet-mapping >
< servlet-mapping >
< servlet-name > CookieServlet </ servlet-name >
< url-pattern > /mycookie </ url-pattern >
</ servlet-mapping >
</ web-app >
注意:servlet-mapping元素必須在servlet元素之後才能配置。
url-pattern matches any HTTP requests ending with the "/cookie/" string.
你可以使用萬用字元”*” 去擴充你的mapping pattern.在下面的範例中以/cookie/開頭的德URL都能調用這個CookieServlet。在後面的斜杠後能隨意的包含任何名字。舉個小例子。CookieServlet能夠被這樣的URL調用http://www.mysite.org/cookbook/cookie/you
那是因為 url-pattern 匹配到任何的HTTP請求只要它以“/cookie/”字串結束
Example 3-3. Using an * in the URL pattern
<? 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-application_2_3.dtd"
>
< servlet >
< servlet-name > CookieServlet </ servlet-name >
< servlet-class > com.jspservletcookbook.CookieServlet </ servlet-class >
</ servlet >
< servlet-mapping >
< servlet-name > CookieServlet </ servlet-name >
< url-pattern > /cookie/* </ url-pattern >
</ servlet-mapping >