java.net

Class CookieManager


  • public class CookieManager
    extends CookieHandler
    CookieManager provides a concrete implementation of CookieHandler, which separates the storage of cookies from the policy surrounding accepting and rejecting cookies. A CookieManager is initialized with a CookieStore which manages storage, and a CookiePolicy object, which makes policy decisions on cookie acceptance/rejection.

    The HTTP cookie management in java.net package looks like:

                      use
     CookieHandler <------- HttpURLConnection
           ^
           | impl
           |         use
     CookieManager -------> CookiePolicy
                 |   use
                 |--------> HttpCookie
                 |              ^
                 |              | use
                 |   use        |
                 |--------> CookieStore
                                ^
                                | impl
                                |
                      Internal in-memory implementation
     
    • CookieHandler is at the core of cookie management. User can call CookieHandler.setDefault to set a concrete CookieHanlder implementation to be used.
    • CookiePolicy.shouldAccept will be called by CookieManager.put to see whether or not one cookie should be accepted and put into cookie store. User can use any of three pre-defined CookiePolicy, namely ACCEPT_ALL, ACCEPT_NONE and ACCEPT_ORIGINAL_SERVER, or user can define his own CookiePolicy implementation and tell CookieManager to use it.
    • CookieStore is the place where any accepted HTTP cookie is stored in. If not specified when created, a CookieManager instance will use an internal in-memory implementation. Or user can implements one and tell CookieManager to use it.
    • Currently, only CookieStore.add(URI, HttpCookie) and CookieStore.get(URI) are used by CookieManager. Others are for completeness and might be needed by a more sophisticated CookieStore implementation, e.g. a NetscapeCookieSotre.

    There're various ways user can hook up his own HTTP cookie management behavior, e.g.

    • Use CookieHandler.setDefault to set a brand new CookieHandler implementation
    • Let CookieManager be the default CookieHandler implementation, but implement user's own CookieStore and CookiePolicy and tell default CookieManager to use them:
             // this should be done at the beginning of an HTTP session
             CookieHandler.setDefault(new CookieManager(new MyCookieStore(), new MyCookiePolicy()));
           
    • Let CookieManager be the default CookieHandler implementation, but use customized CookiePolicy:
             // this should be done at the beginning of an HTTP session
             CookieHandler.setDefault(new CookieManager());
             // this can be done at any point of an HTTP session
             ((CookieManager)CookieHandler.getDefault()).setCookiePolicy(new MyCookiePolicy());
           

    The implementation conforms to RFC 2965, section 3.3.

    Since:
    1.6
    See Also:
    CookiePolicy
    • Constructor Detail

      • CookieManager

        public CookieManager()
        Create a new cookie manager.

        This constructor will create new cookie manager with default cookie store and accept policy. The effect is same as CookieManager(null, null).

      • CookieManager

        public CookieManager(CookieStore store,
                     CookiePolicy cookiePolicy)
        Create a new cookie manager with specified cookie store and cookie policy.
        Parameters:
        store - a CookieStore to be used by cookie manager. if null, cookie manager will use a default one, which is an in-memory CookieStore implmentation.
        cookiePolicy - a CookiePolicy instance to be used by cookie manager as policy callback. if null, ACCEPT_ORIGINAL_SERVER will be used.
    • Method Detail

      • setCookiePolicy

        public void setCookiePolicy(CookiePolicy cookiePolicy)
        To set the cookie policy of this cookie manager.

        A instance of CookieManager will have cookie policy ACCEPT_ORIGINAL_SERVER by default. Users always can call this method to set another cookie policy.

        Parameters:
        cookiePolicy - the cookie policy. Can be null, which has no effects on current cookie policy.
      • getCookieStore

        public CookieStore getCookieStore()
        To retrieve current cookie store.
        Returns:
        the cookie store currently used by cookie manager.
      • get

        public Map<String,List<String>> get(URI uri,
                                   Map<String,List<String>> requestHeaders)
                                     throws IOException
        Description copied from class: CookieHandler
        Gets all the applicable cookies from a cookie cache for the specified uri in the request header.

        The URI passed as an argument specifies the intended use for the cookies. In particular the scheme should reflect whether the cookies will be sent over http, https or used in another context like javascript. The host part should reflect either the destination of the cookies or their origin in the case of javascript.

        It is up to the implementation to take into account the URI and the cookies attributes and security settings to determine which ones should be returned.

        HTTP protocol implementers should make sure that this method is called after all request headers related to choosing cookies are added, and before the request is sent.

        Specified by:
        get in class CookieHandler
        Parameters:
        uri - a URI representing the intended use for the cookies
        requestHeaders - - a Map from request header field names to lists of field values representing the current request headers
        Returns:
        an immutable map from state management headers, with field names "Cookie" or "Cookie2" to a list of cookies containing state information
        Throws:
        IOException - if an I/O error occurs
        See Also:
        CookieHandler.put(URI, Map)
      • put

        public void put(URI uri,
               Map<String,List<String>> responseHeaders)
                 throws IOException
        Description copied from class: CookieHandler
        Sets all the applicable cookies, examples are response header fields that are named Set-Cookie2, present in the response headers into a cookie cache.
        Specified by:
        put in class CookieHandler
        Parameters:
        uri - a URI where the cookies come from
        responseHeaders - an immutable map from field names to lists of field values representing the response header fields returned
        Throws:
        IOException - if an I/O error occurs
        See Also:
        CookieHandler.get(URI, Map)

Nederlandse vertaling

U hebt gevraagd om deze site in het Nederlands te bezoeken. Voor nu wordt alleen de interface vertaald, maar nog niet alle inhoud.

Als je me wilt helpen met vertalingen, is je bijdrage welkom. Het enige dat u hoeft te doen, is u op de site registreren en mij een bericht sturen waarin u wordt gevraagd om u toe te voegen aan de groep vertalers, zodat u de gewenste pagina's kunt vertalen. Een link onderaan elke vertaalde pagina geeft aan dat u de vertaler bent en heeft een link naar uw profiel.

Bij voorbaat dank.

Document heeft de 11/06/2005 gemaakt, de laatste keer de 04/03/2020 gewijzigd
Bron van het afgedrukte document:https://www.gaudry.be/nl/java-api-rf-java/net/CookieManager.html

De infobrol is een persoonlijke site waarvan de inhoud uitsluitend mijn verantwoordelijkheid is. De tekst is beschikbaar onder CreativeCommons-licentie (BY-NC-SA). Meer info op de gebruiksvoorwaarden en de auteur.

Referenties

  1. Bekijk - html-document Taal van het document:fr Manuel PHP : https://docs.oracle.com

Deze verwijzingen en links verwijzen naar documenten die geraadpleegd zijn tijdens het schrijven van deze pagina, of die aanvullende informatie kunnen geven, maar de auteurs van deze bronnen kunnen niet verantwoordelijk worden gehouden voor de inhoud van deze pagina.
De auteur Deze site is als enige verantwoordelijk voor de manier waarop de verschillende concepten, en de vrijheden die met de referentiewerken worden genomen, hier worden gepresenteerd. Vergeet niet dat u meerdere broninformatie moet doorgeven om het risico op fouten te verkleinen.

Inhoudsopgave Haut