user3590092
user3590092

Reputation: 37

What is the difference between these url mapping patterns?

What is the difference between these url mappings ?

<url-pattern>/servlet</url-pattern>

and

<url-pattern>/servlet/*</url-pattern>

and

<url-pattern>/*</url-pattern>

and

 <url-pattern>*.do</url-pattern>

Upvotes: 2

Views: 1928

Answers (2)

John Eipe
John Eipe

Reputation: 11246

Note that root (/) means the context root of your web application.

<url-pattern>/servlet</url-pattern>

Matches to a specific resource that maps directly to path servlet under root(/)

<url-pattern>/servlet/*</url-pattern>

Matches to any resource under /servlet.

<url-pattern>/*</url-pattern>

Matches to any resource under root(/).

<url-pattern>*.do</url-pattern>

Matches to a specific file pattern i.e. that ends with .do.

Upvotes: 1

kapex
kapex

Reputation: 29999

URL patterns are explained in the Servlet 3.0 Specification, section 12.2 Specification of Mapping:

In the Web application deployment descriptor, the following syntax is used to define mappings:

  • A string beginning with a / character and ending with a /* suffix is used for path mapping.

  • A string beginning with a *. prefix is used as an extension mapping.

  • The empty string ("") is a special URL pattern that exactly maps to the application's context root, i.e., requests of the form http://host:port/<context-root>/. In this case the path info is / and the servlet path and context path is empty string (““).

  • A string containing only the / character indicates the "default" servlet of the application. In this case the servlet path is the request URI minus the context path and the path info is null.

  • All other strings are used for exact matches only.

Upvotes: 2

Related Questions