Package java.net
Class CookieManager
java.lang.Object
java.net.CookieHandler
java.net.CookieManager
public class CookieManager extends CookieHandler
This class provides a concrete implementation of CookieHandler. It separates
the storage of cookies from the policy which decides to accept or deny
cookies. The constructor can have two arguments: a CookieStore and a
CookiePolicy. The former is in charge of cookie storage and the latter makes
decision on acceptance/rejection.
CookieHandler is in the center of cookie management. User can make use of
CookieHandler.setDefault to set a CookieManager as the default one used.
CookieManager.put uses CookiePolicy.shouldAccept to decide whether to put
some cookies into a cookie store. Three built-in CookiePolicy is defined:
ACCEPT_ALL, ACCEPT_NONE and ACCEPT_ORIGINAL_SERVER. Users can also customize
the policy by implementing CookiePolicy. Any accepted HTTP cookie is stored
in CookieStore and users can also have their own implementation. Up to now,
Only add(URI, HttpCookie) and get(URI) are used by CookieManager. Other
methods in this class may probably be used in a more complicated
implementation.
There are many ways to customize user's own HTTP cookie management:
First, call CookieHandler.setDefault to set a new CookieHandler
implementation. Second, call CookieHandler.getDefault to use CookieManager.
The CookiePolicy and CookieStore used are customized. Third, use the
customized CookiePolicy and the CookieStore.
This implementation conforms to RFC 2965 section 3.3.
- Since:
- 1.6
-
Constructor Summary
Constructors Constructor Description CookieManager()Constructs a new cookie manager.CookieManager(CookieStore store, CookiePolicy cookiePolicy)Constructs a new cookie manager using a specified cookie store and a cookie policy. -
Method Summary
Modifier and Type Method Description Map<String,List<String>>get(URI uri, Map<String,List<String>> requestHeaders)Searches and gets all cookies in the cache by the specified uri in the request header.CookieStoregetCookieStore()Gets current cookie store.voidput(URI uri, Map<String,List<String>> responseHeaders)Sets cookies according to uri and responseHeadersvoidsetCookiePolicy(CookiePolicy cookiePolicy)Sets the cookie policy of this cookie manager.Methods inherited from class java.net.CookieHandler
getDefault, setDefault
-
Constructor Details
-
CookieManager
public CookieManager()Constructs a new cookie manager. The invocation of this constructor is the same as the invocation of CookieManager(null, null). -
CookieManager
Constructs a new cookie manager using a specified cookie store and a cookie policy.- Parameters:
store- a CookieStore to be used by cookie manager. The manager will use a default one if the arg is null.cookiePolicy- a CookiePolicy to be used by cookie manager ACCEPT_ORIGINAL_SERVER will be used if the arg is null.
-
-
Method Details
-
get
public Map<String,List<String>> get(URI uri, Map<String,List<String>> requestHeaders) throws IOExceptionSearches and gets all cookies in the cache by the specified uri in the request header.- Specified by:
getin classCookieHandler- Parameters:
uri- the specified uri to search forrequestHeaders- a list of request headers- Returns:
- a map that record all such cookies, the map is unchangeable
- Throws:
IOException- if some error of I/O operation occurs
-
put
Sets cookies according to uri and responseHeaders- Specified by:
putin classCookieHandler- Parameters:
uri- the specified uriresponseHeaders- a list of request headers- Throws:
IOException- if some error of I/O operation occurs
-
setCookiePolicy
Sets the cookie policy of this cookie manager. ACCEPT_ORIGINAL_SERVER is the default policy for CookieManager.- Parameters:
cookiePolicy- the cookie policy. if null, the original policy will not be changed.
-
getCookieStore
Gets current cookie store.- Returns:
- the cookie store currently used by cookie manager.
-