Quando usar o Servlet ou o @Controller

Eu preciso esclarecer algumas coisas. Eu tenho procurado por uma resposta para esta, mas não consigo encontrar uma boa resposta para minhas perguntas específicas (por exemplo, esta questão estava mordiscando a resposta:Diferença entre servlet e serviço da web).

No meu entender, há diferentes maneiras de implementar o "tratamento de solicitações", também conhecido como "Controlador", em um aplicativo da Web "orientado para MVC", sendo dois deles:

Um Java específicoServlet (ou seja, um que você cria clicando em novo -> Servlet, no eclipse por exemplo), usado como um "Controller". Este estendeHttpServlet e você usa métodos comodoGet edoPost etc.Um Spring MVC anotado@Controller classe (sim, usando umDispatcherServlet). Com este você usa o@RequestMethod GET/POST etc.

Agora para minhas perguntas ...

Quando você usa um ou outro?Há algunsgeral vantagens de usar um método sobre o outro? (Tipo, um método é recomendado sobre o outro em geral?)

[EDITAR]Palavras-chave enfatizadas

questionAnswers(3)

yourAnswerToTheQuestion