Java 浏览器如何处理cookie?

Java 浏览器如何处理cookie?,java,web-applications,cookies,browser,Java,Web Applications,Cookies,Browser,浏览器如何管理cookies?我的意思是,它必须创建对象吗 动机:我想登录到一个cookie站点。如今,Cookie不仅仅是名称和值,还包含域、过期日期等 我需要Java prospective的答案。每当浏览器收到包含特定cookie头的响应时,它就会创建cookie 使用java servlet API,您可以通过以下方式创建cookie: Cookie cookie = new Cookie(); cookie.setName(); // setValue, setMaxAge, setP

浏览器如何管理cookies?我的意思是,它必须创建对象吗

动机:我想登录到一个cookie站点。如今,Cookie不仅仅是名称和值,还包含域、过期日期等


我需要Java prospective的答案。

每当浏览器收到包含特定cookie头的响应时,它就会创建cookie

使用java servlet API,您可以通过以下方式创建cookie:

Cookie cookie = new Cookie();
cookie.setName(); // setValue, setMaxAge, setPath, etc.
response.addCookie(cookie);

在后续请求中,浏览器将cookie发送到服务器。同样,使用servlet API,您可以通过调用
request.getCookies()

来获取当前cookies,假设您在服务器上工作,并且在servlet环境中工作(Tomcat、Jetty),然后,您需要查看和响应中的类似cookies集。

如果您希望从客户端角度自动浏览网站,而不是手动浏览,我将使用类似的框架,它基于,但更高级别,更易于使用。您不必担心cookies,但如果需要检查cookies,您可以访问cookies


我知道这并不能直接回答你关于浏览器如何处理cookies的问题,但我希望它能有所帮助

如果您想要使用java.net内置API构建具有cookie状态的迷你浏览器,您可以查看本教程:。它展示了Java如何连接到URL,如何通过响应头获取Cookie,以及如何在请求中设置Cookie

一些示例代码:

    System.out.println("GET: " + url);

    // create and open url connection for reading
    URL urlObj = new URL(url);
    URLConnection conn = urlObj.openConnection();

    // set existing cookies
    conn.setRequestProperty("Cookie", myGetSavedCookies(url));

    // connect
    conn.connect();

    // loop through response headers to set new cookies
    myAddSavedCookies(conn.getHeaderFields().get("Set-Cookie"));

    // read page
    Scanner sc = new Scanner(conn.getInputStream());
    while (sc.hasNextLine())
        out.write(sc.nextLine());
    sc.close();

不,服务器创建cookie对象,浏览器将其粘贴到cookie jar中。我根据教程进行了尝试,但它不起作用。但我对requestproperty的第一个参数只是“cookie”感到困惑。他们试图用这个字符串说什么。它只是一个字符串还是cookie名称还是什么???它是一个常量键,指示第二个参数是什么。通过使用“;”分隔键=值对,可以指定多个cookie。有关此方法的参考,请参阅。