Контроллер - абстракция над сервлетом.
В контроллер можно принимать уже объект - фреймворк его сам извлечет из http запроса и десериализует на основании mediatype.
Сервлет оперирует объектами HttpServletRequest/HttpServletResponse. Там все вышеперечисленное нужно реализовывать самостоятельно.