To get the defining class: http://groups.google.com/groups?selm=T3jO7.115605%248a.83958584%40news1.rsm1.occa.home.com The Singleton idiom, double-checked locking, etc.: http://www-106.ibm.com/developerworks/java/library/j-dcl.html JSP introduction: http://java.sun.com/webservice/docs/ea1/tutorial/doc/JSPIntro.html JSP implicit objects: http://java.sun.com/j2ee/tutorial/1_3-fcs/doc/JSPIntro7.html On ThreadLocal: http://www-106.ibm.com/developerworks/java/library/j-threads3.html (Think there is a similar, but better, article on an IBM site.) Why constructors are not inherited: - because Object has a no-argument constructor; if it were possible to inherit constructors, all classes (since all inherit from Object) will have a no-argument constructor, even though this is inappropriate for some objects. - ??? doesn't seem convincing Where to get j2ee.jar: http://java.sun.com/j2ee/1.4/download.html; get the Sun Java System Application Server Platform. (Also get the Platform API Documentation if you wants the docs.) HOW TO SET CONFIG OPTIONS: SET (web.xml, for the application): foo hello ... GET (.jsps): application.getInitParameter("foo"); GET (HttpServlet): getServletContext().getInitParameter("foo"); // not tested, actually SET (web.xml, for the servlet): foo hello GET (.jsps): (Not possible--?) GET (HttpServlet): getServletConfig().getInitParameter("foo"); SET (ServletContext.setAttribute()): context.setAttribute("foo", "Hello"); GET (.jsps): application.getAttribute("foo"); GET (HttpServlet): getServletConfig().getAttribute("foo");