gpt4 book ai didi

java - Play2 (java?) - 如何在不使用 session 或 flash 的情况下在拦截器中增强请求

转载 作者:行者123 更新时间:2023-12-01 12:20:41 24 4
gpt4 key购买 nike

在横切问题中 - 假设在记录时,我想通过使用 Play2 操作组合的操作从“记录拦截器”发出请求来传递请求 id。

如何在将请求传递到 Controller 之前向操作中的请求添加内容?我可以添加到 session 或闪存,但我不想在服务器上存储任何状态。

例如,如果我想添加人工标题或其他内容,我该怎么做?或者是否存在仅适用于当前请求的“闪存”?我只是不希望服务器中有任何状态,但例如 headers() 是不可变的。

我正在使用java,但应该不重要。我现在只是使用闪光灯作为解决方法,但这并不正确。

假设示例:

         @Override
public F.Promise<Result> call(Http.Context context) throws Throwable {
String requestId = UUID.randomUUID().toString();
log(requestId);

context.flash().put("requestId", requestId);


return delegate.call(context).map((x) -> {
context.flash().remove("requestId");
return x;
});
}

最佳答案

您想添加到请求而不是响应中?

对于响应,您可以使用

context.response().setHeader("Access-Control-Allow-Credentials", "true");

您还可以使用上下文参数(在 Controller 、 View 和操作/拦截器之间传递内容)。

context.args.put("Key","Value");

关于java - Play2 (java?) - 如何在不使用 session 或 flash 的情况下在拦截器中增强请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26679742/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com