I need to decode a URI that contains a query string; expected input/output behavior is something like the following:
abstract class URIParser { /*
new java.net.URI(proxyRequestParam).getPath()
The string encoded by js encodeURIComponent should just be a path, without schema and other things. However it still a valid input for java.net.URI. So java.net.URI will do everything for us and then the path of it is what we want.