private static String valueOrEmpty(String input) {
        if (input == null) {
            return "";
        }
        return input;
    }
Return the request URI for the given request, detecting an include request
URL if called within a RequestDispatcher include.
<p>As the value returned by <code>request.getRequestURI()</code> is <i>not</i>
decoded by the servlet container, this method will decode it.
<p>The URI that the web container resolves <i>should</i> be correct, but some
containers like JBoss/Jetty incorrectly include ";" strings like ";jsessionid"
in the URI. This method cuts off such incorrect appendices.

@param request current HTTP request
@return the request URI
@deprecated use getPathWithinApplication() to get the path minus the context path,
or call HttpServletRequest.getRequestURI() directly from your code.
web/src/main/java/org/apache/shiro/web/util/WebUtils.java