spring-boot - 在 Sprint Boot thymeleaf 应用程序中,如何在不更改 URL 的情况下重定向?
问题描述
我有基于 Spring Boot 2.0 thyemeleaf/spring reactor 的网络应用程序。我在控制器中有这段代码:
Mono.just("redirect:/error/404");
如果不良用户输入无效的查询字符串参数,则会运行该程序。重定向工作正常,但 URL 更改为:
/error/404
而不是像这样保留原始用户输入的 URL
/home?gp=badvalue
如何在浏览器地址栏中保留原始 URL 的同时进行重定向?
请注意,此 Web 应用程序将在嵌入式 servlet 容器(在本例中为 Netty)中运行。
解决方案
使用 redirect redirect:/error/404
,服务器将响应 302 和 Location 标头中的新 URL;然后浏览器/客户端将对新 URL 发出另一个请求。
尝试使用转发:
return new ModelAndView("forward:/redirectedUrl", model);
转发完全发生在服务器端;Servlet 容器将相同的请求转发到目标 URL;URL 不会在浏览器中更改
参考这里
推荐阅读
- ios - ios全屏背景图片
- javascript - 如何链接到Angular中同一页面上的锚点
- ios - UITableView,点击按钮自动调整单元格高度
- python - 如何检查另一个程序中的任务是否已完成?
- spring - Spring Boot:Spring 数据 jpa + Mariadb
- macos - 在 Mac 上安装 kubectl 时如何解决 localhost:8080 not found 问题?
- c - 如何在 makefile 中包含项目目录之外的标头
- google-cloud-platform - 我将 Java 代码放在 Google Cloud Tasks 的什么位置
- javascript - 未使用 JavaScript 建立 WebSocket 连接
- reactjs - 找不到模块:无法解决“react-bootstrap”问题