The main method is used to run Java code on the desktop (either from the command line or by double-clicking a jar file). Since servlets do not run on the desktop -but on a server inside a servlet container- it doesn't make sense that they would work the same way. Search for "servlet lifecycle" for explanations of how servlets run, and study the javadocs of the javax.servlet.Servlet interface
Main method is the invocation point of any java program. That is where the program execution begins. Having said this, the servlets are extensions of web servers to bring in dynamic contents. They are not the starting point of the web applicaton.There are a lot more things that happen immediately after the server start-up and the servlet instantiation. The servlets are instantiated usually at start-up or on demand. So, there should be something that maintains the servlet instantiation itself; that something is the servlet container. To maintain that servlet container, we need a server. So, when you start a server - java process - you are invoking the main method of the bootstarp library of that server. In case of Tomcat, it's in ../bin/bootstrap.jar library.