如何找出请求到达错误处理程序的 url?

How to found out url with which the request arrived at error handler?

我发送以下 http 请求:

http://localhost:8081/member/createCompany/getSmallThumbnail/

在服务器端,我进入了控制器方法:

@RequestMapping("/error")
public String error(Model model, HttpServletRequest request){
    if(request.getRequestURI().contains("thumbnail")){
        System.out.println("thumbnail accepted");
     }
     request.toString();
     model.addAttribute("message", "page not found");
     return "errorPage";
}

在这个方法中我想知道url请求是用什么到达的。

如果在调试中我在这个方法中停止,我会看到我需要的信息:

但是我在请求中找不到方法 return 这个。

请帮忙returnurl我想要的

P.S.

实际上我还没有在我的 spring mvc 应用程序中为 http://localhost:8081/member/createCompany/getSmallThumbnail/ 映射控制器(url 已损坏)。此 url("/error") 在 web.xml 中配置为错误页面。

您的请求已重新发送至 /error(可能是为了进行错误处理)。

如果此框架遵循正常的 Servlet 错误调度行为,那么您的原始请求可以在各种 javax.servlet.RequestDispatcher.ERROR_* 键下的 HttpServletRequest.getAttributes() 中找到。

  • ERROR_EXCEPTION - 异常对象
  • ERROR_EXCEPTION_TYPE - 异常对象的类型
  • ERROR_MESSAGE - 异常信息
  • ERROR_REQUEST_URI - 导致错误调度的原始请求 uri
  • ERROR_SERVLET_NAME - 导致错误的 servlet 的名称
  • ERROR_STATUS_CODE - 为此错误调度确定的响应状态代码

你要的是

String originalUri = (String) request.getAttribute(
                                       RequestDispatcher.ERROR_REQUEST_URI)