TagFiles are nothing but special JSPs with .tag extension. It's more often like a special JSP to include contents used mainly by page designers. No Java files need to be generated for implementing such Tag functionality.
TagHandlers are nothing but Java code invoked while executing Tags in JSPs
TagLibraries are APIs that enable a tag developer to implement particular tag functionality. There are two different Tags: Simple and Classic. JSP 2.0 introduced Simple Tag and its widely used and recommended. To implement Simple Tag, you must extend SimpleTagSupport class. These are all TagLibraries.
Best Regards,<br />Balaji Natarajan<br /> <br />SCJP 1.5 100%<br />SCWCD 1.5 92%<br />SCBCD (In Progress)
I'd argue that a tag library is a collection of tags, defined by a single Tag Library Descriptor (TLD), and usually associated with one or more URIs which identify the library to JSP pages/documents. The Tag Extension API provides the interfaces and classes required to implement Tags (by creating Tag Handler classes), which must then be deployed into a Tag Library. Tag Files are written in JSP syntax (along with the special <%@ tag %> directive) and may either be deployed into Tag Libraries or stand-alone in an application.
To implement Simple Tag, you must extend SimpleTagSupport class.
You must implement the SimpleTag interface. You may extend the SimpleTagSupport class (which implements SimpleTag) if that's more convenient - but it's not a requirement.
Charles Lyons (SCJP 1.4, April 2003; SCJP 5, Dec 2006; SCWCD 1.4b, April 2004)
Author of OCEJWCD Study Companion for Oracle Exam 1Z0-899 (ISBN 0955160340 / AmazonAmazon UK )