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. GSL 1.15 and 1.16 building with Visual Studio 2010 --FROM 4fire

    http://4fire.wordpress.com/2012/03/18/gsl-1-15-building-with-visual-studio-2010/ Update 05/02/2014: ...

  2. 【DB2】DB2使用IMPORT命令导入含有自增长列的表报错处理

    1.启动数据库:db2start 2.创建数据库:create db TestDB using codeset gbk territory CN  collate using identity 3.连 ...

  3. 【Android实战】Gallary+ImageSwicther图片查看器

    仿照如今各大新闻站点图片新闻的浏览模式,上面展示详细图片(ImageSwitch),以下是能够滑动的小图片(Gallery). 当中须要注意的是ImageSwitch须要定义一个工厂返回的组件,而且能 ...

  4. 25:坐标移动CoordinateMove

    题目描述 开发一个坐标计算工具, A表示向左移动,D表示向右移动,W表示向上移动,S表示向下移动.从(0,0)点开始移动,从输入字符串里面读取一些坐标,并将最终输入结果输出到输出文件里面. 输入: 合 ...

  5. FullPage.js 活动单页 - 全屏滚动插件

    插件描述:fullPage.js 是一个基于 jQuery 的插件,它能够很方便.很轻松的制作出全屏网站. https://www.uedsc.com/fullpage.html 官网 如今我们经常能 ...

  6. 树莓派 CPU & 主板 温度

    CPU cat /sys/class/thermal/thermal_zone0/temp | awk '{print $1/1000}' 主板 /opt/vc/bin/vcgencmd measur ...

  7. PLSQL怎样导出oracle表结构

    tools->export tables 是导出表结构还有数据 tools->export user objects是导出表结构   可以用tools->export tables ...

  8. sealed,new,virtual,abstract与override关键字的区别?

    1. sealed——“断子绝孙” 密封类不能被继承.密封方法可以重写基类中的方法,但其本身不能在任何派生类中进一步重写.当应用于方法或属性时,sealed修饰符必须始终与override一起使用. ...

  9. 新手学习JSP+Servlet笔记一

    作为一个新手,初次接触jsp,servlet,习惯了后台的开发,前台的知识一窍不通,利用闲暇时间,给自己补补,从MyEclipse开始. 安装好MyEclipse之后,没有安装程序的可以下载 http ...

  10. css选择器参考手册

    选择器 例子 例子描述 CSS .class .intro 选择 class="intro" 的所有元素. 1 #id #firstname 选择 id="firstna ...