Java Server Faces (JSF) Web-Applications: Tuning and Configuration

Recently, and during helping many organizations in government, banking and educational domains developing Java web-based applications using Java Server Faces (JSF) technology, I have noticed that most developers and technical teams misconfigure different aspects of JSF applications, which dramatically affected the behavior, performance, and security of those applications.
In this article, I will present the required configurations and tuning to ensure the stability, security, and performance of JSF applications.