Even servlet containers are the wrong approach. I have from experience it’s best to stick to libraries. You know where you are when you call a function.
The Servlet spec now includes annotation scanning by default now, which is unnecessarily complicated and slows down start up.