我正在使用 Jersey 框架来开发我的 Web 服务。我有一个名为 UserInfo 的 DTO 对象,其中包含 setter 和 getter。我最初是在用户登录时设置此 DTO 值。如何将此用户特定的 DTO 传递给 Jersey 服务类?
我曾尝试将它们设置在 MultivaluedMap 和 Form 中,但我运气不好让它工作。
这是我的代码:
MultivaluedMap<String, String> queryParams = new MultivaluedMapImpl();
queryParams.add("queryTerm", "userdto");
Form f = new Form();
f.add("name", "1001D");
这就是我试图检索数据的方式。
public class HaiService {
@GET
@Produces("application/json")
@Consumes("application/json")
public String sayPlainTextHello(@Context UriInfo ui) {
MultivaluedMap queryParams=ui.getQueryParameters();
Iterator it=queryParams.keySet().iterator();
String theKey=null;
String returnString="";
while(it.hasNext()) {
theKey=(String)it.next();
System.out.println(queryParams.getFirst(theKey));
}
System.out.println("I am called");
return "Hi";
}
但我运气不好。通常我的要求是在登录时存储用户特定的数据,然后在服务类中检索它。
我避免在会话中存储数据,因为用户可能会在一个浏览器下使用多个 ID 登录,这会产生相同的会话 ID,并且第一个登录用户的数据有可能被覆盖。