I believe We can have multiple controller instances in an application. For example, in business deligate pattern, we can define the same controller class by making the entry in web.xml(thereby a new instances for every business deligate will be created by the server).
<
servlet>
<servlet-name>Delegate1</servlet-name>
<display-name>Delegate1</display-name>
<servlet-class>FrontController</servlet-class>
</servlet>
<servlet>
<servlet-name>Delegate2</servlet-name>
<display-name>Delegate2</display-name>
<servlet-class>FrontController</servlet-class>
</servlet>
Please correct me if I am wrong.