我在Servlet中使用帮助程序类,以从Servlet本身中删除一些代码。我正在使用CDI @Inject在servlet中注入此帮助程序类,并且也将其标记为@RequestScoped bean。由于此帮助程序类用于从Servlet删除一些代码,因此我需要访问此类中的httprequest,响应和会话。有没有办法通过注射使它们可用?我试图在类型字段上使用@inject
HttpServletRequest,但我从WELD收到错误。

最佳答案

有两种替代解决方案。

  • 您可以将HttpServletRequest传递给助手。我的意思是不是帮助者是:
    @Inject HttpServletRequest request;
    
    public Xxx doSomeHelperWork() {
        // use request
    }
    

    做了:
    public Xxx doSomeHelperWork(HttpServletRequest request) {
        // use request
    }
    
  • 使用DeltaSpike servlet module可以处理HttpServletRequest的注入。
  • 关于java - CDI和HttpRequest,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22338520/

    10-11 02:40