在POJO类中获取Servlet Request对象

问题描述

| 我需要在正在从Acegi类调用的POJO中获取当前页面的URL(需要为我正在处理的应用添加一些自定义逻辑),并且需要检索HttpServletRequest,以便可以获取的子域。 URL(逻辑基础)。 我尝试添加:
@Autowired
private HttpServletRequest request;

...

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

public HttpServletRequest getRequest() {
    return request;
}
但是,当我尝试在代码中使用请求对象时,该对象为null。 知道我做错了什么或如何更好地做到这一点吗?     

解决方法

        如果bean是请求范围的,则可以像执行操作一样自动装配HttpServletRequest。
@Component
@Scope(\"request\")
public class Foo {
    @Autowired private HttpServletRequest request;

    //
}
否则,您可以按以下方式获取当前请求:
    ServletRequestAttributes sra = (ServletRequestAttributes)RequestContextHolder.getRequestAttributes();
    HttpServletRequest req = sra.getRequest();     
这在后台使用了线程局部的。 如果您使用的是Spring MVC,那么这就是您所需要的。如果您不使用Spring MVC,则需要在ѭ3中注册一个RequestContextListener或RequestContextFilter。     

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...