If I think logically I figure one must be a reference to an Environment variable already in the JNDI tree, one must put one into the JNDI Tree, and one must be an object in the JNDI tree, not in the environment side of it. But even if I am right, which one relates to which?
The Servlet API 2.3 is slated to become a core part of Java 2 Platform, Enterprise Edition 1.3 (J2EE 1.3). The previous version, Servlet API 2.2, was part of J2EE 1.2. The only noticeable difference is the addition of a few relatively obscure J2EE-related deployment descriptor tags in the web.xml DTD: <resource-env-ref> to support "administered objects," such as those required by the Java Messaging System (JMS); <res-ref-sharing-scope> to allow either shared or exclusive access to a resource reference; and <run-as> to specify the security identity of a caller to an EJB. Most servlet authors need not concern themselves with those J2EE tags; you can get a full description from the J2EE 1.3 specification.
But don't ask me now what administered objects are about.