首页 > 解决方案 > Java Spring - 如何接受 RequestParam,并从 url 中删除?

问题描述

有时我想通过 url 将标识符传递给我的网站,但我不想将其显示给用户。是否有一种简单的方法来获取请求参数但在加载页面时不向用户显示?

这是当前如何设置我的代码的总体思路

@GetMapping("/somePage")
public ModelAndView get(@RequestHeader HttpHeaders headers,
                        @RequestParam(value = "someId", required = false) String someId) {

我知道我理论上可以在 javascript 端执行此操作,但这似乎需要页面重新加载或与历史记录混淆。

标签: javaspringurlhttp-request-parameters

解决方案


通常这是不好的做法 - 如果它在 URL 中传递,它将在用户的浏览器历史记录中可见。POST 可能是这里的最佳实践。

但是要回答您的实际问题:

将您的自定义值放入标题并重定向?

这些方面的东西(未经测试)

headers.set("X-Custom-Header1", someId);
headers.set("Location", "/newEndpoint");
return new ResponseEntity<>(headers, HttpStatus.FOUND);

推荐阅读