Cuándo usar Servlet o @Controller

Necesito aclarar algunas cosas. He estado buscando una respuesta para esta, pero parece que no puedo encontrar una buena respuesta a mis preguntas específicas (por ejemplo, esta pregunta fue mordisqueando la respuesta:Diferencia entre servlet y servicio web.).

A mi entender, hay diferentes maneras de implementar el "manejo de solicitudes", también conocido como "Controlador", en una aplicación web "orientada a MVC", dos de ellas son:

Un Java específicoServlet (es decir, uno que crea haciendo clic en nuevo -> Servlet, en eclipse, por ejemplo), que se utiliza como "Controlador". Este se extiendeHttpServlet y usas métodos comodoGet ydoPost etc.Un Spring MVC anotado@Controller clase (si, usando unaDispatcherServlet). Con este usas el@RequestMethod GET/POST etc.

Ahora a mis preguntas ...

¿Cuándo usas uno o el otro?Hay algunageneral ¿Ventajas para usar un método sobre el otro? (Al igual que, ¿se recomienda un método sobre el otro en general?)

[EDITAR]: Palabras clave acentuadas

Respuestas a la pregunta(3)

Su respuesta a la pregunta