B) To increase application performance
Servlets are not made to increase application performance, this is what the specs say about them:
A servlet is a Java technology-based Web component, managed by a container, that generates dynamic content. Like other Java technology-based components, servlets are platform-independent Java classes that are compiled to platform-neutral byte code that can be loaded dynamically into and run by a Java technology-enabled Web server. Containers, sometimes called servlet engines, are Web server extensions that provide servlet functionality. Servlets interact with Web clients via a request/response paradigm implemented by the servlet container.
C) When we need to implement high scale applications
I don't think Servlets will make your application more scalable, that is more depending on the Application Server characteristics (clustering, load-balancing capabilities and so on). You can use Servlets in a high scale application, but Servlets won't be the reason that you have a high scale application.
D) to filter HTTP request
You can use a javax.servlet.Filter in front of your application to filter the requests accessing you web-app
E) can act as Front controller, HTTP Action Handler
This is one of the
patterns you will have to learn for the exam, so just read HFSJ about the
JEE patterns
Regards,
Frits