【发布时间】:2018-09-24 07:29:02
【问题描述】:
我有一个简单的休息控制器,可以捕捉错误。我想获取浏览器发送到服务器的实际 URL,但 servlet 给了我一个不同的 URL。
如果我导航到 127.0.0.1/abc,则会触发 404 错误,并按照定义将其路由到 /error 处理程序。但是,输出给我的结果是127.0.0.1/error,而不是127.0.0.1/abc。如何获取原始网址?
@RestController
public class IndexController implements ErrorController {
@RequestMapping("/")
public String index() {
return "OK";
}
@RequestMapping("/error")
public String error(HttpServletRequest request) {
System.out.println("ERR: " + request.getRequestURL() + " : " + request.getRequestURI());
return "ERR";
}
@Override
public String getErrorPath() {
return "/error";
}
}
【问题讨论】:
-
您可能希望创建一个带有
@ControllerAdvice注释的类,并使用@ExceptionHandler注释来捕获Spring Boot 为404 引发的异常并以这种方式处理它。以下答案提供了一个示例:stackoverflow.com/a/45510975/2535264
标签: java spring spring-boot