加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

Java CookieStore 类使用示例

发布时间:2020-12-15 00:19:04 所属栏目:Java 来源:网络整理
导读:今天PHP站长网 52php.cn把收集自互联网的代码分享给大家,仅供参考。 CookieStore 是 Java API 中用来处理 HTTP 客户端的 Cookie 存储策略的类。 import java.io.BufferedReader;import java.io.InputStream;import java.

以下代码由PHP站长网 52php.cn收集自互联网

现在PHP站长网小编把它分享给大家,仅供参考

CookieStore 是 Java API 中用来处理 HTTP 客户端的 Cookie 存储策略的类。
import 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?

<%
    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>

以上内容由PHP站长网【52php.cn】收集整理供大家参考研究

如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读