Class diagram represents static behavior, by showing the relationship between classes (associations, generalizations, specializations, agreggations, compositions and so on) Colabortion diagrams represents dynamic behavior, it shows how classes colaborate with each other, to which classes one class communicates. It can derived from a sequence diagram, and vice-versa.
Components like DAO, service locator, business delegate, filter, helper, and so on are design strategies. They are translated to java classes, obviously, but are components that exists only for a design strategy. so i think that they're best suited to show in a component diagram. In a class diagram you've to draw primarly the business classes.
GiUsEpPe (SCJP, SCWCD, SCBCD, IBM OOAD, SCEA/OCMJEA 5)