currently the DefaultServlet only uses PathInfo to locate the file to serve. i think it should use ServletPath + PathInfo to serve the file. as it is now, it is impossible to use a servlet mapping like this: <servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>/images/*</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>dispatcher</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> if you make a request for '/images/blah.gif', ServletPath = '/images' and PathInfo = '/blah.gif'. so DefaultServlet will try to serve '/blah.gif' which doesn't exist because it is in the '/images/' directory. if it used ServletPath + PathInfo, it will work as expected. making this change will not affect the current standard usage of DefaultServlet (where its mapped to '/') because in that case ServletPath is null, so it only uses PathInfo. it will also still work if people use a suffix mapping. in the other case, where its is used with a path mapping like '/images/*', the current behavior seems almost useless.
This is not going to be supported, however I encourage you to modify and use the default servlet.
ok, if thats the only option. just out of curiosity, are you rejecting this cuz tomcat has always had this behavior so why change it, or is there an actual reason for only using PathInfo? i couldn't really think of a good reason for only using PathInfo, so i'm interested to know if there is one.