You know that part you said:
However I can also use a servlet that provides access control and after that forwards the request to the intended servlet
This is handled for you in a Filter. Yes, a FilterServlet is really just a Servlet but it handles a bit of menial tasks for you automatically. Depending on your mapping, all requests will go through the filter first.
What you are eluding to in what you could manually do with a Servlet is create a Controller Servlet. In your View's all your requests will need to be sent to the Controller Servlet which then determines where the request goes. Unless you use a Framework, you would need to code this manually.
Using a ServletFilter just saves you a bit of manual labor really and provides a single point of entry for your security/compression/logging, etc.