Subscribe

RSS Feed (xml)

Powered By

Skin Design:
Free Blogger Skins

Powered by Blogger

Wednesday, November 21, 2007

How to use CookieStore in java

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> map = new HashMap>();

public void add(URI uri, HttpCookie cookie) {
List cookies = map.get(uri);
if (cookies == null) {
cookies = new ArrayList();
map.put(uri, cookies);
}
cookies.add(cookie);
}

public List get(URI uri) {
List cookies = map.get(uri);
if (cookies == null) {
cookies = new ArrayList();
map.put(uri, cookies);
}
return cookies;
}

public List getCookies() {
Collection> values = map.values();
List result = new ArrayList();
for (List value : values) {
result.addAll(value);
}
return result;
}

public List getURIs() {
Set keys = map.keySet();
return new ArrayList(keys);

}

public boolean remove(URI uri, HttpCookie cookie) {
List cookies = map.get(uri);
if (cookies == null) {
return false;
}
return cookies.remove(cookie);
}

public boolean removeAll() {
map.clear();
return true;
}
}


The cookieTest.jsp page


<%
Cookie cookie = new Cookie ("username", "guest");

cookie.setMaxAge (100);
response.addCookie (cookie);
%>
<html>

HttpCookie Demo

<body>
Add cookie. Cookie name = <%=cookie.getName () +". Cookie value = " + cookie.getValue () %>
body>
html>

No comments: