例子
下面这个简单的例子说明了 Cookie 相关的管理功能
// 创建一个默认的 CookieManagerCookieManager manager = new CookieManager();// 将规则改掉接受所有的 CookiemanagersetCookiePolicy(CookiePolicyACCEPT_ALL);// 保存这个定制的 CookieManagerCookieHandlersetDefault(manager);// 接受 HTTP 请求的时候得到和保存新的 CookieHttpCookie cookie = new HttpCookie((name)(value));managergetCookieStore()add(uri cookie);// 使用 Cookie 的时候// 取出 CookieStore CookieStore store = managergetCookieStore();// 得到所有的 URI List uris = storegetURIs();for (URI uri : uris) {// 筛选需要的 URI// 得到属于这个 URI 的所有 CookieList cookies = storeget(uri);for (HttpCookie cookie : cookies) {// 取出了 Cookie}}// 或者取出这个 CookieStore 里面的全部 Cookie// 过期的 Cookie 将会被自动删除List cookies = storegetCookies();for (HttpCookie cookie : cookies) {// 取出了 Cookie}
其他新特性
·NetworkInterface 的增强
从 Java SE 开始JDK 当中出现了一个网络工具类 NetworkInterface提供了一些网络的实用功能 在 Java SE 当中这个工具类得到了很大的加强新增了很多实用的方法例如
public boolean isUp()
用来判断网络接口是否启动并运行
public boolean isLoopback()
用来判断网络接口是否是环回接口(loopback)
public boolean isPointToPoint()
用来判断网络接口是否是点对点(PP)网络
public boolean supportsMulticast()
用来判断网络接口是否支持多播
public byte[] getHardwareAddress()
用来得到硬件地址(MAC)
public int getMTU()
用来得到最大传输单位(MTUMaximum Transmission Unit)
public boolean isVirtual()
用来判断网络接口是否是虚饨涌?
关于此工具类的具体信息请参考 Java SE 相应文档(见 参考资源)
·域名的国际化
在最近的一些 RFC 文档当中规定 DNS 服务器可以解析除开 ASCII 以外的编码字符有一个算法可以在这种情况下做 Unicode 与 ASCII 码之间的转换实现域名的国际化IDN 就是实现这个国际化域名转换的新类IDN 是国际化域名的缩写(internationalized domain names)这个类很简单主要包括 个静态函数做字符的转换
结束语
Java SE 有着很多 HTTP 相关的新特性使得 Java SE 平台本身对网络编程尤其是基于 HTTP 协议的因特网编程有了更加强大的支持