| # Networking | Documentation Contents

Networking Enhancements for JavaTM 2 SDK, Standard Edition, v 1.3

### 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.

  - public boolean getKeepAlive(boolean)
  - public void setKeepAlive(boolean on)

  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.

  - varied implementation, see javadocs for each class.

  Static methods java.net.URLConnection.setDefaultRequestProperty() and java.net.URLConnection.getDefaultRequestProperty() are now deprecated.

- `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.

  - protected boolean equals(URL u1, URL u2)
  - protected getDefaultPort()
  - protected InetAddress getHostAddress(URL u)
  - protected int hashCode(URL u)
  - protected boolean hostsEqual(URL u1, URL u2)
  - protected boolean sameFile(URL u1, URL u2)
  - 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.

Copyright © 1996-99 Sun Microsystems, Inc. All Rights Reserved. | Java Software