org.springframework.web.util.UrlPathHelper#getRequestUri

getRequestUri 方法

public String getRequestUri(HttpServletRequest request) {
    String uri = (String) request.getAttribute(WebUtils.INCLUDE_REQUEST_URI_ATTRIBUTE);
    if (uri == null) {
        uri = request.getRequestURI();
    }
    return decodeAndCleanUriString(request, uri);
}
主要功能:
  1. 获取 URI:首先尝试从请求的属性中获取 URI(使用 WebUtils.INCLUDE_REQUEST_URI_ATTRIBUTE 属性)。
  2. 处理 URI:如果从属性中未能获取到 URI,则调用 request.getRequestURI() 方法获取原始请求的 URI。
  3. 调用其他方法进行处理:最后,将获取的 URI 传递给 decodeAndCleanUriString 方法进行进一步的处理。

decodeAndCleanUriString 方法

private String decodeAndCleanUriString(HttpServletRequest request, String uri) {
    uri = removeSemicolonContent(uri);
    uri = decodeRequestString(request, uri);
    uri = getSanitizedPath(uri);
    return uri;
}
主要功能:
  1. 移除分号内容:调用 removeSemicolonContent 方法,这个方法的作用是去掉 URI 中分号后面的内容,通常这是因为一些 servlet 的实现可能会在 URI 中包含分号及其后面的参数。
  2. 解码 URI:调用 decodeRequestString 方法,这个方法负责对 URI 进行 URL 解码,以处理其中的编码字符(如 %20 被解码为空格)。
  3. 路径清理:调用 getSanitizedPath 方法,对传入的路径字符串 path 进行清理,移除其中连续的双斜杠 //,从而生成一个“干净”的路径。
引用\[1\]和\[2\]中的内容是关于请求处理失败的异常信息,具体原因是在处理请求时出现了一些错误,比如找不到属性的setter方法、参数设置错误等。而引用\[3\]中的内容是关于解决这个问题的方法,即在pom文件中添加一些配置信息。根据这些信息,可以得出结论是在处理请求时发生了异常,可能是由于代码中的错误或配置问题导致的。为了解决这个问题,可以尝试按照引用\[3\]中的方法进行配置。 #### 引用[.reference_title] - *1* [nested exception is org.apache.ibatis.reflection.ReflectionException](https://blog.csdn.net/qq_39736176/article/details/82904792)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [org.springframework.web.util.NestedServletException: Request processing failed; nested exception...](https://blog.csdn.net/Daneliya/article/details/88062861)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [org.springframework.web.util.NestedServletException](https://blog.csdn.net/selt791/article/details/83037555)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值