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

标签 spring-mvc servlets request custom-error-handling

我发送以下 http 请求:

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

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

@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。

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

但是我在请求中找不到返回这个的方法。

请帮忙返回我想要的url。

附言

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

最佳答案

你的请求被重新发送到 /error(可能是为了错误处理)。

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

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

你想要的是

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

关于spring-mvc - 如何找出请求到达错误处理程序的 url?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32910492/

相关文章:

java - 如何从我的代码程序中修复此错误

java - 将 Java 对象列表从 Spring 4 Controller 返回到 AJAX

java - 我想从存储在字符串中的日期获取日期名称,日期,月份,年份,例如 "Wed, 27 feb 2013"

java - 无法解析导入 javax.annotation.Resource

c++ - 为什么在不同的连接(新的 InternetOpen 和新的 InternetConnect)上两次调用 HttpSendRequest 会带来不同的结果?

java - RedirectAttributes 类中 addAttribute 和 addFlashAttribute 之间的混淆

java - 如何诊断 Apache Tomcat 出现 "resource is not available"错误?

java - 迭代从 JSP 上的 servlet 发送的 ArrayList?

node.js - 在 POST 请求中转发上传的文件 - Express

node.js - 使用 request(),返回的页面还不包含需要的数据——而是返回不完整的页面。我如何 'wait' ?