使用Jersey 2.x如何注入HttpRequest和HttpSession对象?以及如何在服务类中使用注入请求和Httpsession对象?
在2. 2.x注入请求和资源类中的会话对象工作正常获取请求和会话对象
像商务舱一样无法工作。
答案 0 :(得分:1)
您可以尝试将@Context HttpServletRequest request
添加到资源方法签名中。这将使request
在方法持续时间内可用。
将HttpServeltRequest / Session对象传递给服务或业务类是不好的做法。如果执行此操作,则除了Web应用程序之外,您在使用服务类时非常困难。您应该从Resource类中的HttpServletRequest / Session中提取服务类所需的数据,并将其传递给服务类
例如,如果您的服务类需要访问HttpServletRequests“userName”参数中保存的userName,那么Resource类应该
String userName = req.getParameter("UserName");
serviceClass.doSomething(userName);
而不是
serviceClass.doSomething(req);