Networking Enhancements for Java2 SDK, Standard Edition, v 1.3
Networking
New Classes/Interfaces
- java.net.DatagramSocketImplFactory
New interface java.net.DatagramSocketImplFactory is used by DatagramSocket to create actual socket implementations. This addition makes DatagramSocket consistent with the other socket types, by allowing the user to set the DatagramSocketImplFactory through a public API.
Modified Classes/Interfaces
- java.net.HttpURLConnection
The following constants were added to java.net.HttpURLConnection to make the HTTP status codes match the HTTP 1.1 RFC:
- public static final int HTTP_INTERNAL_ERROR = 500;
- public static final int HTTP_NOT_IMPLEMENTED = 501;
Two new methods were added to support following HTTP redirects (requests with response code 3xx) on a per-instance basis. The default is to use the class setting.
- public boolean getInstanceFollowRedirects()
- public void setInstanceFollowRedirects(boolean followRedirects)
- java.net.Socket and java.net.SocketImpl
Two new methods have been added to java.net.Socket. Java sockets now support the keepalive option.
Two new methods have been added to java.net.Socket and java.net.SocketImpl. This change is to support TCP half-closed sockets:
- public void shutdownInput()
- public void shutdownOutput()
- java.net.URL,java.net.URLConnection, and java.net.ContentHandler
Several access methods have been added to make java.net.URL consistent with the fields of a URL as described in the latest IETF specification, RFC2396.
- public String getAuthority()
- public String getPath()
- public String getQuery()
- public String getUserInfo()
- public set(String protocol, String host, int port, String authority, String userInfo, String path, String query, String ref)
An overloaded getContent() method was added to java.net.URL, java.net.URLConnection, and java.net.ContentHandler to allow requesting that the returned content object support one of an ordered list of Java types. This allows mapping of MIME types to more than one possible Java type, and improves system flexibility.
Static methods java.net.URLConnection.setDefaultRequestProperty() and java.net.URLConnection.getDefaultRequestProperty() are now deprecated.
- varied implementation, see javadocs for each class.
- java.net.URLDecoder
The method java.net.URLDecoder.decode(String) no longer throws an exception.
- java.net.URLStreamHandler
Several new methods have been added to java.net.URLStreamHandler.
These additions expose the concept of a handler's default port number and allow URL handlers to override aspects of URL equality and hashcode comparisons in URL protocol-specific ways. These changes enable cleaner access to the parsed component parts of a URL and enhance the ability of the various URL handlers to share common parsing code.
- java.net.URL, java.net.URL)">protected boolean equals(URL u1, URL u2)
- protected getDefaultPort()
- java.net.URL)">protected InetAddress getHostAddress(URL u)
- java.net.URL)">protected int hashCode(URL u)
- java.net.URL, java.net.URL)">protected boolean hostsEqual(URL u1, URL u2)
- java.net.URL, java.net.URL)">protected boolean sameFile(URL u1, URL u2)
- java.net.URL, java.lang.String, java.lang.String, int, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String)">protected void setURL(URL u, String protocol, String host, int port, String authority, String userInfo, String path, String query, String ref)
- java.util.jar.JarFile and java.util.zip.ZipFile
There is a new open mode for java.util.zip.ZipFile and java.util.jar.JarFile, which automatically deletes temporary (cached) files associated with each JarURLConnection when the Zip/Jar file opened in this mode is closed and the process exits. This is useful when downloading temporary jar files onto a local disk.
Miscellaneous Information
- Added HTTP 1.1 client-side support and enhancements, such as http keepalives.
- The SDK now does a better job of URL parsing by following RFC 2396 much more closely.