Enthuware Q.Bank says B) is the correct answer and explains:
When /report is mapped to ReporterServlet, all of the following requests will be sent to ReporterServlet:
While the following requests will not be sent to ReporterServlet:
/report/index.html
/report/finance
But if you map /report/* to ReporterServlet, the above two requests will also be sent to ReporterServlet.

But it is also true for the case A) that all the requests to this mapping will have the servlet path /report and would be sent to ReporterServlet

Yes chandan I agree, if you map a servlet to the path /report/* and a request comes for /report/index.do, the request.getServletPath method will return /report, but I think what the question was trying to say was that only the requests with path /report should be handled. When the question said "servlet path", I think they didn't mean the value returned by the request.getServletPath method (actually "servlet path" means the value returned by request.getServletPath, but I think the question didn't mean that). Anyone from Enthuware might clarify more what the question actually meant...

If we try to construct the requests having the servlet path of /report , some of the requests would be,
1. http://localhost:8080/contextPath/report (This URl will be served by the server - exact match)
2. http://localhost:8080/contextPath/report?id=1234

Hi,
Ankit is right. The question should be made clearer to avoid confusion caused by the words "servlet path". The intention is to only allow requests having a complete path (excluding query string) to be serviced by the servlet. So /report is the correct answer.