Jsp&Servelet 学习笔记-对一个Servlet创建多个Mapping

来源:互联网 发布:js实现div闪烁效果 编辑:程序博客网 时间:2024/05/29 04:38

对一个Servlet创建多个Mapping

当我们想创建多个nameURL 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>