JavaSpring-如何接收RequestParam并从url中删除?

JavaSpring-如何接收RequestParam并从url中删除?,java,spring,url,http-request-parameters,Java,Spring,Url,Http Request Parameters,有时我想通过url向我的网站传递一个标识符,但我不想向用户显示它。是否有一种简单的方法可以接收请求参数,但在加载页面时不向用户显示它 这是目前如何设置代码的一般概念 @GetMapping("/somePage") public ModelAndView get(@RequestHeader HttpHeaders headers, @RequestParam(value = "someId", required = false) String s

有时我想通过url向我的网站传递一个标识符,但我不想向用户显示它。是否有一种简单的方法可以接收请求参数,但在加载页面时不向用户显示它

这是目前如何设置代码的一般概念

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

我知道理论上我可以在javascript端这样做,但这似乎需要重新加载页面或将历史记录弄乱。

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

但要回答你的实际问题:

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

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

headers.set(“X-Custom-Header1”,someId);
headers.set(“Location”,“/newEndpoint”);
返回新的ResponseEntity(标题,HttpStatus.FOUND);

将用户重定向到没有此参数的另一个url(例如,您可以将参数值存储在请求属性中),或者使用javascript历史api执行此操作。总的来说,这听起来是个坏主意。如果你的用户点击F5怎么办?他们会得到另一个响应。你可以将“隐藏”值放在自定义标题中。这对我的用例很有效。这到底是什么坏习惯?只是curious@JR3652在URL中传递内容几乎总是可以用最少的努力看到的——即使有这样的解决方法也不适合敏感数据。