Polishing
UriComponentsBuilder.toUriString instead of RequestContext.getMvcUrl (breaking cyclic dependency between web.servlet.support and web.servlet.mvc)
Consistent use of IllegalStateException instead of InternalError for UnsupportedEncodingException cause