title: What's the difference between the various JSTL libraries out there and which to use?
body: <p>I'm puzzled because of build and run errors that mislead me. From them, I can't quite figure out what the distinction is between the various JavaServer Page Standard Tag Libraries. For instance, I see:</p>
  
  <pre><code>jstl.jar (in Apache Tomcat)
  jstl-1.2.jar (in Tomahawk examples)
  jstl-impl.jar (in GlassFish)
  </code></pre>
  
  <p>In times past, I've used (and recently recovered and have stored privately against disaster) from <em>javax.servlet.jsp.jstl</em></p>
  
  <pre><code>jstl-api-1.2.jar
  jstl-impl-1.2.jar
  </code></pre>
  
  <p>These latter are the only ones I seem to be able to use reliably in doing JavaServer Faces (JSF) work.</p>
  
  <p>There's no wiki statement I've found that contrasts these different JARs. Yeah, I know their ages are different. I wonder, for instance, if <em>jstl.jar</em> isn't supposed to be a modern, definitive, both in one (<em>api</em> and <em>impl</em>) and I'm just using the wrong JSF libraries (<em>myfaces-api-1.2.8.jar</em>, for instance) to go with it?</p>
  
  <p>My purpose is to establish a definitive set of JARs for doing Facelet work using either MyFaces or RichFaces, the two I know best.</p>
  
  <p>Thanks to anyone who can shed some light and best practice on this.</p>