Separation of concerns.
DRY (don't repeat yourself)
probably a few other programming guidelines could be applied, but those are the main two.
There are two distinct concepts here.
1 - "Servlet" defines a module that can handle a request, and gives a response
2 - "Servlet-mapping" tells the container "which servlet should I invoke when the user calls this URL"
subject: Why there is a seperation between configuring and Mapping a servlet in the web.xml file?