Question: I'm very new to web development. 

I see people running grails app on tomcat, without grails being installed in that system! How this can be possible? How come tomcat can understand "grails" terminology and semantics?

Am I missing anything over here?

Thanks in advance.

Answer: 
Everything the app needs is in the WAR file that you deploy, including the Grails JARs. Tomcat merely hosts the app. It doesn't need to know Grails terminology and semantics. By the time Tomcat knows about it, it's already been translated into the things it knows: HTTP, HTML, etc.
You can build a normal [WAR](http://en.wikipedia.org/wiki/WAR_file_format_%28Sun%29) file using the command `grails war`. See [the documentation](http://grails.org/doc/latest/ref/Command%20Line/war.html) on the `war` command.

Because everything compiles to JVM bytecode, and the Groovy library is included, this WAR can then be deployed on any servlet container - as long as it supports the servlet spec you're compiling against. Most likely you need a container that supports servlet 2.5.