有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java无法在springboot应用程序中存储/检索cookie

在我当前的spring boot项目中,我添加了这个类,目标是允许我存储和检索cookie:

public class CookieAcessor {
  public static List<HttpCookie> getCookies() {
    try {
      CookieManager manager = new CookieManager();
      manager.setCookiePolicy(CookiePolicy.ACCEPT_ALL);
      CookieHandler.setDefault(manager);
      CookieStore cookieJar =  manager.getCookieStore();
      URL url = new URL("http://localhost:8080");
      List <HttpCookie> cookies = cookieJar.get(url.toURI());
      return cookies;
    } catch(Exception e) {
      return new ArrayList<HttpCookie>();
    }
  }

  public static String getCookie(String key) {
    List<HttpCookie> cookies = getCookies();
    for(HttpCookie cookie : cookies) {
      if(cookie.getName().equals(key))
        return cookie.getValue();
    }
    return null;
  }

  public static void setCookie(String key, String value) {
    try {
      CookieManager manager = new CookieManager();
      CookieHandler.setDefault(manager);
      CookieStore cookieJar =  manager.getCookieStore();
      HttpCookie cookie = new HttpCookie(key, value);
      URL url = new URL("http://localhost:8080");
      cookieJar.add(url.toURI(), cookie);
    } catch(Exception e) {
      System.out.println("Erro ao armazenar o cookie!");
    }
  }
}

但是当我尝试执行这个类中的任何方法(用于读取或保存cookie)时,什么都没有做。任何人都可以看到这个代码有什么问题吗?它是基于官方文件中的这篇文章:http://docs.oracle.com/javase/tutorial/deployment/doingMoreWithRIA/accessingCookies.html

更新

此类在控制器的方法中使用,如下所示:

  @RequestMapping(value = "/")
  public String index() {
    CookieAcessor.setCookie("teste", "...");
    System.out.println("cookie[teste] = "+CookieAcessor.getCookie("teste"));
    return "public/index";
  }

共 (0) 个答案