gpt4 book ai didi

spring - 获取 POJO 类中的 Servlet Request 对象

转载 作者:IT老高 更新时间:2023-10-28 13:46:21 25 4
gpt4 key购买 nike

我需要获取从 Acegi 类调用的 POJO 中的当前页面 URL(需要为我正在处理的应用程序添加一些自定义逻辑)并且需要检索 HttpServletRequest 以便我可以获取URL 的子域(逻辑所基于)。

我已经尝试添加:

@Autowired
private HttpServletRequest request;

...

public void setRequest(HttpServletRequest request) {
this.request = request;
}

public HttpServletRequest getRequest() {
return request;
}

但是,当我尝试在我的代码中使用请求对象时,它为空。

知道我做错了什么或如何更好地做到这一点吗?

最佳答案

如果 bean 是请求范围的,你可以像你正在做的那样 Autowiring HttpServletRequest。

@Component
@Scope("request")
public class Foo {
@Autowired private HttpServletRequest request;

//
}

否则可以得到当前请求如下:

    ServletRequestAttributes sra = (ServletRequestAttributes)RequestContextHolder.getRequestAttributes();
HttpServletRequest req = sra.getRequest();

这在幕后使用线程本地。

如果您使用的是 Spring MVC,这就是您所需要的。如果你没有使用 Spring MVC,那么你需要注册一个 RequestContextListenerRequestContextFilter在你的 web.xml.

关于spring - 获取 POJO 类中的 Servlet Request 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6300812/

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