0

我正在使用 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,并且第一个登录用户的数据有可能被覆盖。

4

0 回答 0