我正在使用servlet中的助手类从servlet本身中删除一些代码。我正在用CDI @Inject将此助手类注入Servlet,这也标记为@requestscoped Bean。由于此助手类用于从servlet中删除一些代码,因此我需要访问此类中的httprequest,响应和会话。有没有办法通过注射来提供这些?我尝试在类型字段上使用@Injecthttpservletrequest,但我从WELD中获得了错误。
有几个替代解决方案。
-
您可以将
HttpServletRequest
传递给助手。我的意思是而不是助手是:@Inject HttpServletRequest request; public Xxx doSomeHelperWork() { // use request }
做到这一点:
public Xxx doSomeHelperWork(HttpServletRequest request) { // use request }
-
使用可以处理
HttpServletRequest
的注入的deltaspike Servlet模块。