Let\'s presume that I have string like \'=&?/;#+%\' to be a part of my URL, let\'s say like this:
example.com/servletPath/someOtherPath/myString/something.ht
According to the Javadoc, getRequestURI should not decode the string. On the other hand, getServletPath return a decoded string. I tested this locally using Jetty and it behaves as described in the doc.
So there might be something else at play in your situation since the behavior you're describing doesn't match the Sun documentation.