Documentation Contents

# Networking Features and Enhancements

## in Java SE 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()`
  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 © 1993, 2026, Oracle and/or its affiliates. All rights reserved.
Contact Us