| 
 | Java™ Platform Standard Ed. 6 | |||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectjava.net.CookieHandler
java.net.CookieManager
public class CookieManager
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
CookieHandlerimplementation- Let CookieManager be the default
CookieHandlerimplementation, but implement user's ownCookieStoreandCookiePolicyand 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
CookieHandlerimplementation, but use customizedCookiePolicy:// 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.
| Constructor Summary | |
|---|---|
| CookieManager()Create a new cookie manager. | |
| CookieManager(CookieStore store,
              CookiePolicy cookiePolicy)Create a new cookie manager with specified cookie store and cookie policy. | |
| Method Summary | |
|---|---|
|  Map<String,List<String>> | get(URI uri,
    Map<String,List<String>> requestHeaders)Gets all the applicable cookies from a cookie cache for the specified uri in the request header. | 
|  CookieStore | getCookieStore()To retrieve current cookie store. | 
|  void | put(URI uri,
    Map<String,List<String>> responseHeaders)Sets all the applicable cookies, examples are response header fields that are named Set-Cookie2, present in the response headers into a cookie cache. | 
|  void | setCookiePolicy(CookiePolicy cookiePolicy)To set the cookie policy of this cookie manager. | 
| Methods inherited from class java.net.CookieHandler | 
|---|
| getDefault, setDefault | 
| Methods inherited from class java.lang.Object | 
|---|
| clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait | 
| Constructor Detail | 
|---|
public CookieManager()
This constructor will create new cookie manager with default cookie store and accept policy. The effect is same as CookieManager(null, null).
public CookieManager(CookieStore store,
                     CookiePolicy cookiePolicy)
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 | 
|---|
public void setCookiePolicy(CookiePolicy cookiePolicy)
A instance of CookieManager will have cookie policy ACCEPT_ORIGINAL_SERVER by default. Users always can call this method to set another cookie policy.
cookiePolicy - the cookie policy. Can be null, which
                          has no effects on current cookie policy.public CookieStore getCookieStore()
public Map<String,List<String>> get(URI uri,
                                    Map<String,List<String>> requestHeaders)
                             throws IOException
CookieHandler
get in class CookieHandleruri - a URI to send cookies to in a requestrequestHeaders - - a Map from request header
            field names to lists of field values representing
            the current request headers
IOException - if an I/O error occursCookieHandler.put(URI, Map)
public void put(URI uri,
                Map<String,List<String>> responseHeaders)
         throws IOException
CookieHandler
put in class CookieHandleruri - a URI where the cookies come fromresponseHeaders - an immutable map from field names to
            lists of field values representing the response
            header fields returned
IOException - if an I/O error occursCookieHandler.get(URI, Map)| 
 | Java™ Platform Standard Ed. 6 | |||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.