While I had been reading about Lifecycle of JSP a question came to my mind: How can the Container compile a .java class translated from .jsp? The Java API doesn't support compilation, does it? Does it call the javac complier in a shell?
Yes, it uses the same classes that make up the core of javac. They can be used directly if one knows the API. They're somewhere in the com.sun.* hierarchy, so you shouldn't be using them, of course (although they work just fine). If you look through the jar files that make up Tomcat, you'll find them.