CookieStore 是 Java API 中用来处理 HTTP 客户端的 Cookie 存储策略的类。psd素材

1. [代码]WebClient.java     
01import java.io.BufferedReader;
02import java.io.InputStream;
03import java.io.InputStreamReader;
04import java.net.CookieHandler;
05import java.net.CookieManager;
06import java.net.CookiePolicy;
07import java.net.CookieStore;
08import java.net.HttpCookie;
09import java.net.URI;
10import java.net.URL;
11import java.net.URLConnection;
12import java.util.ArrayList;
13import java.util.Collection;
14import java.util.HashMap;
15import java.util.List;
16import java.util.Map;
17import java.util.Set;
18 
19 
20public class WebClient {
21  public static void main(String[] args) throws Exception {
22    CookieStore store = new MyCookieStore();
23    CookiePolicy policy = new MyCookiePolicy();
24    CookieManager handler = new CookieManager(store, policy);
25    CookieHandler.setDefault(handler);
26    URL url = new URL("http://localhost:8080/cookieTest.jsp");
27    URLConnection conn = url.openConnection();
28 
29    InputStream in = conn.getInputStream();
30    BufferedReader reader = new BufferedReader(new InputStreamReader(in));
31    String input;
32    while ((input = reader.readLine()) != null) {
33      System.out.println(input);
34    }
35    reader.close();
36 
37  }
38}
39 
40class MyCookiePolicy implements CookiePolicy {
41  public boolean shouldAccept(URI uri, HttpCookie cookie) {
42//    String host = uri.getHost();
43  //  return host.equals("localhost");
44    return true;
45  }
46}
47 
48class MyCookieStore implements CookieStore {
49  private Map<URI, List<HttpCookie>> map = new HashMap<URI, List<HttpCookie>>();
50 
51  public void add(URI uri, HttpCookie cookie) {
52    List<HttpCookie> cookies = map.get(uri);
53    if (cookies == null) {
54      cookies = new ArrayList<HttpCookie>();
55      map.put(uri, cookies);
56    }
57    cookies.add(cookie);
58  }
59 
60  public List<HttpCookie> get(URI uri) {
61    List<HttpCookie> cookies = map.get(uri);
62    if (cookies == null) {
63      cookies = new ArrayList<HttpCookie>();
64      map.put(uri, cookies);
65    }http://www.huiyi8.com/jiaoben/
66    return cookies;
67  }
68 
69  public List<HttpCookie> getCookies() {
70    Collection<List<HttpCookie>> values = map.values();
71    List<HttpCookie> result = new ArrayList<HttpCookie>();
72    for (List<HttpCookie> value : values) {
73      result.addAll(value);
74    }
75    return result;
76  }
77 
78  public List<URI> getURIs() {
79    Set<URI> keys = map.keySet();
80    return new ArrayList<URI>(keys);
81 
82  }
83 
84  public boolean remove(URI uri, HttpCookie cookie) {
85    List<HttpCookie> cookies = map.get(uri);
86    if (cookies == null) {
87      return false;
88    }
89    return cookies.remove(cookie);
90  }
91 
92  public boolean removeAll() {
93    map.clear();
94    return true;
95  }
96}

【Java】CookieStore 类使用示例的更多相关文章

  1. 关于Java Logger类的使用问题 - 内存不释放

    原文地址:http://www.ihuxu.com/p/236.html   说明:这是一个利用Java Logger类的示例,完成简单的日志记录功能.代码中有部分类库没有说明,但不影响阅读. 本人技 ...

  2. JAVA String 类

    java String类中的常用方法:public char charAt(int index)返回字符串中第index个字符:public int length()返回字符串的长度:public i ...

  3. java 文件类操作(转载)

    11.3 I/O类使用 由于在IO操作中,需要使用的数据源有很多,作为一个IO技术的初学者,从读写文件开始学习IO技术是一个比较好的选择.因为文件是一种常见的数据源,而且读写文件也是程序员进行IO编程 ...

  4. 【47】java的类之间的关系:泛化、依赖、关联、实现、聚合、组合

    java的类之间的关系:泛化.依赖.关联.实现.聚合.组合 泛化: • 泛化关系(Generalization)也就是继承关系,也称为"is-a-kind-of"关系,泛化关系用于 ...

  5. 从字节码和JVM的角度解析Java核心类String的不可变特性

    1. 前言 最近看到几个有趣的关于Java核心类String的问题. String类是如何实现其不可变的特性的,设计成不可变的好处在哪里. 为什么不推荐使用+号的方式去形成新的字符串,推荐使用Stri ...

  6. java pojo类

    POJO POJO是Plain OrdinaryJava Object的缩写 可以当作简单的Java对象 实际就是普通JavaBeans 外文名 POJO 实际意义 普通JavaBeans 全     ...

  7. spring 配置 Java配置类装配bean

    https://www.cnblogs.com/chenbenbuyi/p/8457700.html 自动化装配的确有很大的便利性,但是却并不能适用在所有的应用场景,比如需要装配的组件类不是由自己的应 ...

  8. JAVA代理方式使用示例总结

    JAVA代理方式使用示例总结 一.    代理方式概括 Java的代理方式主要包含了静态代理,动态代理两种方式,其中,动态代理根据实现的方式不同,又可以划分为jdk动态代理和cglib动态代理. 二. ...

  9. java Random类详解

    java Random类位于java.util包下,主要用来生成随机数,本文详解介绍了Random类的用法,希望能帮到大家 Random类 (java.util) Random类中实现的随机算法是伪随 ...

随机推荐

  1. widget 常用UI控件介绍

        一.单选框 单选框实例程序: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android&q ...

  2. ORACLE schedule job设置

    --创建job begin DBMS_SCHEDULER.CREATE_JOB ( job_name => 'APICALL_LOG_INTERFACE_JOB', job_type => ...

  3. 迁移EXT4

    http://fanli7.net/a/JAVAbiancheng/ANT/20101003/43604.html 級別: 中級 Roderick W. Smith ,顧問和作家 2008 年6 月0 ...

  4. Chrome自带恐龙小游戏的源码研究(五)

    在上一篇<Chrome自带恐龙小游戏的源码研究(四)>中实现了障碍物的绘制及移动,从这一篇开始主要研究恐龙的绘制及一系列键盘动作的实现. 会眨眼睛的恐龙 在游戏开始前的待机界面,如果仔细观 ...

  5. zookeeper参数的详解

    安装和配置详解 本文介绍的 Zookeeper 是以 3.2.2 这个稳定版本为基础,最新的版本可以通过官网 http://hadoop.apache.org/zookeeper/来获取,Zookee ...

  6. python爬虫入门篇

    优质爬虫入门源码:https://github.com/lining0806/PythonSpiderNotes Python Spider:https://www.cnblogs.com/wangy ...

  7. iOS-代理托付的使用

    #import "Rigester_ViewController.h" #import "Rigester_ViewController.h" @interfa ...

  8. 如何学习CCIE

    想想自己拖了这么久,也没考试,也没积极去做实验,心里也有怨念,其实一直是方法不对,今天心里产生共鸣,后悔当初太年轻. 转载地址:http://bbs.hh010.com/thread-467553-1 ...

  9. 【BZOJ4435】[Cerc2015]Juice Junctions Tarjan+hash

    [BZOJ4435][Cerc2015]Juice Junctions Description 你被雇佣升级一个旧果汁加工厂的橙汁运输系统.系统有管道和节点构成.每条管道都是双向的,且每条管道的流量都 ...

  10. Servlet单例模式(注意)

    package com.servlet; import java.io.IOException; import javax.servlet.ServletException; import javax ...