Java CookieStore 类使用示例,javacookiestore,CookieStore是
Java CookieStore 类使用示例,javacookiestore,CookieStore是
CookieStore是JavaAPI中用来处理HTTP客户端的Cookie存储策略的类。```javaimport java.io.BufferedReader;import java.io.InputStream;import java.io.InputStreamReader;import java.net.CookieHandler;import java.net.CookieManager;import java.net.CookiePolicy;import java.net.CookieStore;import java.net.HttpCookie;import java.net.URI;import java.net.URL;import java.net.URLConnection;import java.util.ArrayList;import java.util.Collection;import java.util.HashMap;import java.util.List;import java.util.Map;import java.util.Set;
public class WebClient { public static void main(String[] args) throws Exception { CookieStore store = new MyCookieStore(); CookiePolicy policy = new MyCookiePolicy(); CookieManager handler = new CookieManager(store, policy); CookieHandler.setDefault(handler); URL url = new URL("http://localhost:8080/cookieTest.jsp"); URLConnection conn = url.openConnection();
InputStream in = conn.getInputStream();BufferedReader reader = new BufferedReader(new InputStreamReader(in));String input;while ((input = reader.readLine()) != null) { System.out.println(input);}reader.close();
}}
class MyCookiePolicy implements CookiePolicy { public boolean shouldAccept(URI uri, HttpCookie cookie) {// String host = uri.getHost(); // return host.equals("localhost"); return true; }}
class MyCookieStore implements CookieStore { private Map<URI, List<HttpCookie>> map = new HashMap<URI, List<HttpCookie>>();
public void add(URI uri, HttpCookie cookie) { List<HttpCookie> cookies = map.get(uri); if (cookies == null) { cookies = new ArrayList<HttpCookie>(); map.put(uri, cookies); } cookies.add(cookie); }
public List<HttpCookie> get(URI uri) { List<HttpCookie> cookies = map.get(uri); if (cookies == null) { cookies = new ArrayList<HttpCookie>(); map.put(uri, cookies); } return cookies; }
public List<HttpCookie> getCookies() { Collection<List<HttpCookie>> values = map.values(); List<HttpCookie> result = new ArrayList<HttpCookie>(); for (List<HttpCookie> value : values) { result.addAll(value); } return result; }
public List<URI> getURIs() { Set<URI> keys = map.keySet(); return new ArrayList<URI>(keys);
}
public boolean remove(URI uri, HttpCookie cookie) { List<HttpCookie> cookies = map.get(uri); if (cookies == null) { return false; } return cookies.remove(cookie); }
public boolean removeAll() { map.clear(); return true; }}
cookieTest.jsp ```java<% Cookie cookie = new Cookie ("username", "guest"); cookie.setMaxAge (100); response.addCookie (cookie);%><html><head><title>HttpCookie Demo</title></head><body>Add cookie. Cookie name = <%=cookie.getName () +". Cookie value = " + cookie.getValue () %></body></html>
用户点评