對一個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
http://www.rdxx.com/
<?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.jsp(SUN企業級應用的首選)servletcookbook.CookieServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>CookieServlet</servlet-name>
<url-pattern>/cookie/*</url-pattern>
</servlet-mapping>