I have installed Tomcat on a Win NT machine. Its working correctly. But I am little confused about the concept of "Contexts". One of the pre-defined contexts is :
"/examples" => "/webapps/examples/"
There is a file index.html in "/webapps/examples/servlets" which calls the example servlets as http://localhost:8080/example/servlet/helloworld
But there is no directory called "servlet" in the examples directory. Instead all class files are in "web-inf/classes"
How does Tomcat know that "web-inf/classes" => "servlet/" ??
Thanks in advance,
This come with the (http://java.sun.com/products/servlet ?)
Any app server confirming to the Specs from Sun will do this
From Servlet Specs 2.2, Section 9.4
A special directory exists within the application hierarchy named �WEB-INF�. This directory
contains all things related to the application that aren�t in the document root of the application. It is
important to note that the WEB-INF node is not part of the public document tree of the application.
No file contained in the WEB-INF directory may be served directly to a client.
The contents of the WEB-INF directory are:
� /WEB-INF/web.xml deployment descriptor
� /WEB-INF/classes/* directory for servlet and utility classes. The classes in this directory
are used by the application class loader to load classes from.
� /WEB-INF/lib/*.jar area for Java ARchive files which contain servlets, beans, and other
utility classes useful to the web application. All such archive files are used by the web
application class loader to load classes from.
<context path="/herbalviagra" docBase="f:/GetRichQuick/scamoftheweek"/>
The most common context, is of course, the root one, so that would be context path "/". By default, that's mapped into the TOMCAT_ROOT/webapps directory.
Within the REAL directory (f:/GetRichQuick/scanoftheweek or TOMCAT_ROOT/webapps) you unpack your WAR to provide the WEB-INF/classes and other subdirectories as needed.
A complex setup may involve multiple contexts, some of which may be located in different virtual hosts. All of this is set up in server.xml.