【发布时间】:2016-06-20 20:02:22
【问题描述】:
使用 Jersey 2.x 如何注入 HttpRequest 和 HttpSession 对象?以及如何在服务类中使用注入的请求和Httpsession对象?
在 jersey 2.x 中,Resource 类中的注入请求和会话对象可以正常获取请求和会话对象
像商务舱一样不工作。
【问题讨论】:
标签: java jakarta-ee jersey-2.0
使用 Jersey 2.x 如何注入 HttpRequest 和 HttpSession 对象?以及如何在服务类中使用注入的请求和Httpsession对象?
在 jersey 2.x 中,Resource 类中的注入请求和会话对象可以正常获取请求和会话对象
像商务舱一样不工作。
【问题讨论】:
标签: java jakarta-ee jersey-2.0
您可以尝试将@Context HttpServletRequest request 添加到您的资源方法签名中。这将使request 在方法期间可用。
将 HttpServeltRequest / Session 对象向下传递给服务或业务类不是一个好习惯。如果您这样做,您将很难在除 Web 应用程序之外的任何东西中使用服务类。您应该从 Resource 类中的 HttpServletRequest / Session 中提取服务类所需的数据并将其传递给服务类
例如,如果您的服务类需要访问 HttpServletRequests“userName”参数中保存的用户名,那么资源类应该这样做
String userName = req.getParameter("UserName");
serviceClass.doSomething(userName);
而不是
serviceClass.doSomething(req);
【讨论】:
HttpServletRequest,因为它将为空。请看stackoverflow.com/questions/37167921/…