gpt4 book ai didi

java - Controller 库直接访问HttpServletRequest

转载 作者:行者123 更新时间:2023-12-02 07:49:06 24 4
gpt4 key购买 nike

我的应用程序中有许多 Controller 扩展了中央 Controller 类。目前,在每个 Controller 函数中,我必须将请求传递到该函数中,以便我的函数获取当前用户名。该 Controller 类是否可以自行获取请求,而不需要将其作为额外参数?

public class Controller {
protected String environment;

public Controller () {

}

public ModelAndView prepareModel (HttpServletRequest request, ModelAndView model) {
contentDao.clearExpiredLocks();

model.addObject("currentUser", contentDao.findUser(request.getRemoteUser()));

//define current environment
this.environment = (request.getRequestURL().indexOf("localhost") > 0) ? "dev" : "uat";
model.addObject("environment", this.environment);

最佳答案

您可以按如下方式获取当前的HttpServletRequest:

HttpServletRequest request = (HttpServletRequest) RequestContextHolder
.currentRequestAttributes()
.resolveReference(RequestAttributes.REFERENCE_REQUEST);

您可以在 Controller 的方法中使用此代码,或者使用它将请求公开为请求范围的 bean,并将相应范围的代理注入(inject)为 Controller 的字段。

关于java - Controller 库直接访问HttpServletRequest,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10448421/

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