Why doesn MultipartRequest implement the HttpServletRequest interface?
It’s an issue of forward compatibility. If MultipartRequest had implemented HttpServletRequest back when servlets were at API 2.0, then when API 2.1 came out and introduced new methods into the request interface, all deployments of MultipartRequest would have failed because MultipartRequest would no longer fully implement the new HttpServletRequest. The same would have happened with API 2.1 and 2.2. Now happily with API 2.3 there’s an HttpServletRequestWrapper class which protects against forward compatibility concerns, and so MultipartWrapper does fully implement the HttpServletRequest interface.