They are now split off into three separate documents. If you wanted to have a client application access two different SQL servers, your client would have to load two versions of the JDBC library interface routines. JDBC handler classes automatically register themselves, so there is no logical problem with multiple JDBC drivers, just a performance hit. Middleware products like dbAnywhere come to the rescue. The client loads a single version of the JDBC library that either speaks several proprietary protocols, or that talks to a server which in turn talks to the databases in their native proprietary protocols.
Middleware products can also help with buffering output from the server.
Since there is no such thing as a standard JDBC library, every website will require you to download a set of JDBC drivers just to browse its files, even with middleware. If they are native classes, they have to be manually downloaded and installed. There are four types of JDBC drivers. JavaSoft's essay describes them in detail. I will summarize here.