http://docs.oracle.com/javaee/7/tutorial/doc/jsf-intro.htm#BNAPH