A JSP tag library consists of three key components: the Tag Library Descriptor (TLD) file that defines the tags (C), the actual implementation code for each tag (D), and the JSP code that uses the tags (E). Bean name (A) is not a component of the tag library itself - it's data managed by the bean. Servlet code (B) is not directly part of tag library structure. Options C, D, and E are correct.