The /
in the url-pattern means the root of the web application that uses this web.xml. So when you give /ServletBeer.do
. That means http://<yourhost>:<port>/<your context Root>/ServletBeer.do
. When ever you hit this url, the servlet you which have mapped with this i.e com.avinash.TestServlet
will be invoked.
Its not mandatory that you have to use /
in all your url mapping - that purely depends on how you want to configure it. /
is just a regular expression. You can also use *.jsp
in your url-pattern - which will actually invoke this servlet everytime you request any jsp in your web- application.
Consider the section 12.2 Specification of Mappings ** from **JSR-000315 Java Servlet 3.0 Final Release
12.2 Specification of Mappings 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/<contextroot>/
. 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