publicStringgetRequestUri(HttpServletRequest request){String uri =(String) request.getAttribute(WebUtils.INCLUDE_REQUEST_URI_ATTRIBUTE);if(uri ==null){
uri = request.getRequestURI();}returndecodeAndCleanUriString(request, uri);}
调用其他方法进行处理:最后,将获取的 URI 传递给 decodeAndCleanUriString 方法进行进一步的处理。
decodeAndCleanUriString 方法
privateStringdecodeAndCleanUriString(HttpServletRequest request,String uri){
uri =removeSemicolonContent(uri);
uri =decodeRequestString(request, uri);
uri =getSanitizedPath(uri);return uri;}
主要功能:
移除分号内容:调用 removeSemicolonContent 方法,这个方法的作用是去掉 URI 中分号后面的内容,通常这是因为一些 servlet 的实现可能会在 URI 中包含分号及其后面的参数。
解码 URI:调用 decodeRequestString 方法,这个方法负责对 URI 进行 URL 解码,以处理其中的编码字符(如 %20 被解码为空格)。