CDI and HttpRequest



我正在使用servlet中的助手类从servlet本身中删除一些代码。我正在用CDI @Inject将此助手类注入Servlet,这也标记为@requestscoped Bean。由于此助手类用于从servlet中删除一些代码,因此我需要访问此类中的httprequest,响应和会话。有没有办法通过注射来提供这些?我尝试在类型字段上使用@Injecthttpservletrequest,但我从WELD中获得了错误。

有几个替代解决方案。

  1. 您可以将HttpServletRequest传递给助手。我的意思是而不是助手是:

    @Inject HttpServletRequest request;
    public Xxx doSomeHelperWork() {
        // use request
    }
    

    做到这一点:

    public Xxx doSomeHelperWork(HttpServletRequest request) {
        // use request
    }
    
  2. 使用可以处理HttpServletRequest的注入的deltaspike Servlet模块。

最新更新