Servlets are instanciated by the servlet container which also calls their methods. If you have user defined methods in your servlet class that you want to be able to test from the command line, you might want to add a main method. This is not typical as it is considered a best practice to factor any non web handling functionality out of servlet classes and into beans or plain old Java objects.
applications get 'started' via the main method servlets get 'started' via the service method applets get started differently again EJB's differently again
The point is that if you write a 'main' method and call it from the command line, the class will be an application and not a servlet. If you put it in a container and the container calls the service method, it acts like a servlet.
And if you put it in a servlet container, nothing will call main(); it will just sit there, unused, just as would any other random methods named foo() or bar() or kjhskjhdkjhd(). I think that's what you're after, right?