There are some CMS's that can handle virtual urls (for example, Joomla calls it SEF). What are those virtual urls? It is simple, you have an url something like http://mysite.com/index.php?do=contacts&show_phone=1 and CMS somehow makes it possible to assign that ugly url to something shorter readable like http://mysite.com/contacts or even http://mysite.com/contacts.html So the question is how can I do the same in java using Tomcat as a server?