A good example of why you might want to use a Servlet is to process a HTML form submission. This relates back to the "Model-View-Controller" (MVC) architecture where a controller (in this case a Servlet) might perform some processing, modify the model (e.g. JavaBeans or EJBs) and then redirect the user to another view (in this case a JSP).
Splitting up the logic in this way allows you to decouple the processing from the view and therefore allows you to change either easily. This also achieves the "goal" of reducing the amount of
Java code required inside JSPs.
Taking a more pragmatic approach, of course there's nothing stopping you processing forms with JSPs, especially for small applications.
Hope that helps.
Cheers
Simon
------------------
Simon Brown
Co-author of
Professional JSP 2nd Edition